2015-05-14 17 views
9

Attualmente sto lavorando al progetto Symfony (const VERSION = '2.5.10') e sto usando xampp. La versione di PHP è 5.5.19.Errore memoria insufficiente in symfony

Il mio problema è ogni volta che eseguo il mio ambiente dev ho un errore:

OutOfMemoryException: Error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 3358976 bytes) in C:\xampp\htdocs\Editracker\vendor\symfony\symfony\src\Symfony\Component\HttpKernel\Profiler\FileProfilerStorage.php line 153

e ogni volta aggiornare la pagina che dà la dimensione della memoria diversa. Penso anche che questo sia anche il motivo per cui il mio ambiente di sviluppo richiede molto tempo prima che aggiorni la pagina.

Il vostro aiuto è apprezzato.

php.ini

memory_limit= '256M'

ho provato ad aumentare il mio limite di memoria, ancora dà un errore relativo limite di memoria

+0

Il messaggio di errore è molto evidente. Il tuo codice mangia troppa RAM e devi scoprire quale parte ha causato l'OOM. –

+0

possibile duplicato di [Dimensione memoria consentita di 33554432 byte esauriti (provato ad allocare 43148176 byte) in php] (http://stackoverflow.com/questions/415801/allowed-memory-size-of-33554432-bytes-exhausted-tried -to-allocate-43148176-byte) –

+0

@ Michael: L'ho già provato ma ancora mi dà un errore sul limite di memoria. Cosa dovrei fare? – aizele

risposta

14

La componente più ansiosi in Symfony è un profiler. Se non avete bisogno di profiler in alcune azioni particolari è possibile disabilitarlo tramite il codice:

if ($this->container->has('profiler')) 
{ 
    $this->container->get('profiler')->disable(); 
} 

È possibile anche impostare il parametro globale in config:

framework: 
    profiler: 
     collect: false 
+0

dove dovrei davvero impostarlo? È in config.yml o in config_dev.yml? Scusa, mi confondo davvero. – aizele

+0

Il tuo config.dev importa 'config.yml'. E così tutto lo stesso. Ma ti consiglierei di metterlo nella tua dev-config. –

+0

L'ho provato e ho ricevuto un errore: "[Symfony \ Component \ Config \ Definition \ Exception \ InvalidConfigurationException] Opzione non riconosciuta" collect "sotto" framework " – aizele

3

O si disabilita symfony profiler (I don' Penso che questo sia quello che vuoi per quanto ne so) o impostare il limite a illimitato con -1 nel tuo php.ini e riavviare apache.

memory_limit = -1 
+0

Ho provato che l'errore di memoria esaurita va via ma sostituire con questo "FatalErrorException: Errore: tempo di esecuzione massimo di 30 secondi superato in C: \ xampp \ htdocs \ Editracker \ vendor \ symfony \ symfony \ src \ Symfony \ Component \ HttpKernel \ DataCollector \ LoggerDataCollector.php linea 101 " – aizele

+0

Provate anche questo:' max_execution_time = 0' – BentCoder

+0

Se non lo risolve, è meglio cercare di trovare l'effettiva bottiglia nella vostra applicazione. Potresti avere un problema più grande. – BentCoder

1

Se il limite di memoria è solo essere raggiunto sotto l'ambiente dev Symfony suggerirei aggiungendo quanto segue al web/app_dev.php

ini_set('memory_limit', '-1'); 

questo modo è possibile continuare a testare la produzione con una quantità ragionevole di memoria . La modifica dell'intero ambiente tramite php.ini potrebbe nascondere un errore lungo la linea.

1

Ho risolto l'errore Memoria insufficiente sul debug di Twig che installa XDebug.

Poiché il Twig utilizza la funzione PHP var_dump internamente, installare il XDebug è una buona idea, perché limita la var_dump() uscita di array e oggetti a 3 livelli di profondità, come possiamo vedere in documentation.

Crediti a @peezi.

Problemi correlati