2013-06-19 10 views
13

Sto elaborando un vecchio database php array in un nuovo database. I file .php di dati sono in totale circa 220 MB di grandi dimensioni.Utilizzo di ini_set ("memory_limit", "-1") e ancora memoria esaurita

Ho inserito queste righe nello script in modo che dovrebbe funzionare bene:

ini_set("memory_limit", "-1"); 
set_time_limit(0); 

Ecco come includo i prodotti:

// The exports made by PHPMYADMIN, exported as PHP-Array 
require_once 'export/tx_ttproductsv2_products.php'; 
require_once 'export/tx_ttproductsv2_keyword.php'; 
require_once 'export/tx_ttproductsv2_keywords_in_products.php'; 
require_once 'export/tx_ttproductsv2_typebook.php'; 
require_once 'export/tx_ttproductsv2_typegospel7.php'; 
require_once 'export/tx_ttproductsv2_typemedia.php'; 

Quando lo script sta cercando di imporre loro Ho ricevuto questo errore:

PHP Fatal error: Out of memory (allocated 880541696) (tried to allocate 469762048 bytes) in ......

Ho un'installazione di EasyPHP locale in esecuzione su x64 Win 7 SP1. Ho 6 GB di memoria, Intel i5.

Come posso ottenere PHP per eseguire l'intero script senza l'errore di memoria?

+0

Provare ad aumentare 'upload_max_filesize' e' post_max_size'? –

+0

@KhawerZeshan, non carico le cose? O sto vedendo quello sbagliato? – Mathlight

+0

le esportazioni effettuate da PHPMYADMIN sono un file o cosa? –

risposta

11

La limitazione della memoria proviene dal sistema operativo, non dallo stesso PHP.

Lo script 800MB allocato e sta cercando di destinare ulteriori 500 MB

Provare a eseguire lo script su OS a 64 bit a 64 bit con PHP.

+0

Questo probabilmente aggiusterebbe molto, ma non sono in grado di testarlo ora (ho bisogno che funzioni subito). – Mathlight

+1

La soluzione migliore consiste nel recuperare i dati e elaborarli in blocchi anziché caricarli tutti nella memoria e quindi nell'elaborazione. –

+0

Lo so, l'ho diviso in 3 parti (codifica adesso), e questo dovrebbe funzionare bene ... Grazie a chiunque abbia bisogno di aiuto e idee;) – Mathlight

Problemi correlati