Newsgroup: it.comp.www.php
Titolo: da php 5.2.9 a 5.3.0 utilizzo memoria abnorme

Ciao all, ho appena finito l'upgrade del portatile da opensuse 11.1 alla 
11.2M8 passando dal php 5.2.9 al 5.3.0.
Tutto bene tranne che adesso riscontro un utilizzo della memoria IMHO 
eccessivo.
Qualche esempio (sul desktop ho ancora la 11.1..) in Kb:
5.2.9 | 5.3.0
386   | 590
397   | 600
422   | 620
Anche un banalissimo script tipo:
<?php
echo 'mem: '.round(memory_get_usage()/1024,2);
?>
passa da 45Kb a 307Kb !!
Qualche idea ?
Colpa del PHP o potrebbe essere dovuto ad altro ?
Se avete voglia, provate lo script e postate il risultato/versione php, 
così da fare un confronto..
Ciao.
-- 
*** Linux user # 198661 ---_ ICQ 33500725 ***
    ***  Home  
http://www.kailed.net
  ***
        ***  Powered by openSUSE  ***

 così da fare un confronto..
Ciao,
	anche io volevo fare l'upgrade alla nuova versione 5.3 ma stavo 
leggendo che hanno deprecato qualche cosa qua e là e sono titubante. 
Prima verifico sul server di prova. Se hai la pazienza di attendere fino 
a venerdì mi tiro su una VM e ti dico i miei dati sul server in 
produzione e sulla versione 5.3 e faccio il test pratico. Io userò 
Win2003 Standard. Devo ancora capire se per quello che serve a me vale 
la pena. Tu che dici? a parte il peso in memoria apporta velocità o 
semplicità nel codice?

 semplicità nel codice?
Io l'upgrade me lo sono "trovato" :)
Con windows direi che vale la pena installare l'ultima versione 
disponibile magari informandosi _prima_ su eventuali problemi di 
incompatibilità. Poi ci sono diversi altri fattori da valutare, se 
sviluppi a casa e poi ti appoggi da un altra parte, potrebbe essere 
consigliabile/utile avere le stesse versioni del PHP.
Tipicamente, i provider sono abbastanza "pigri" (a volte anche a 
ragione..) nel fare l'upgrade, quindi devi fare attenzione ad non essere 
"troppo avanti" :)
Va bene avere l'ultima versione ma bisogna fare attenzione a sfruttare 
le novità :)
Su linux un po' diverso, di norma è preferibile rimare con la versione 
fornita con la propria distribuzione. In casi particolari e/o di 
necessità, si ricompila :)


 Ciao.
Ciao :)

 eccessivo.
So che nella 5.3 hanno implementato un nuovo algoritmo di garbage 
collection, che dovrebbe essere molto piu` veloce e preciso del 
precedente. Puo` darsi che per esserlo deva consumare piu` RAM.
Prova a vedere i parametri nel php.ini. Dovrebbe essercene uno nuovo per 
configurare quale GC usare.
Bye.

 precedente. Puo` darsi che per esserlo deva consumare piu` RAM.
Mah.. ho provato a googolare ma senza risultato.
Da una parte trovi cose tipo:
Besides the 15% speedup for most code (20% in some cases!) and reduced 
memory use, PHP 5.3 has some very interesting and handy features. Check 
out this really nice “slideshow” of what’s new in PHP 5.3 by Ilia 
Alshanetsky:
Da altre parti si legge che, come dici tu, il nuovo algoritmo introduce 
un leggero overhead. Algoritmo che però dovrebbe essere disabilitato di 
dafault..
Adesso sto installando il tutto su un' altra macchina, poi faccio 
qualche prova con questo nuovo mirabolante algoritmo :) 
Prova a chiedere su ICOLS se qualcuno ha su la 5.3..


 qualche prova con questo nuovo mirabolante algoritmo :)
Dopo un quick test, il nuvo algoritmo abilitato con gc_enable(), 
peggiora di un 0.5 le cose :(
Ho provato su un altro server con debian-eatch e php 5.2.0: 35.
Ricapitolando:
5.2.0 -> 35
5.2.9 -> 45
5.3.0 -> 307
A me pare troppo..


 eccessivo.
Copio/incollo un post fatto su I.C.O.L.S con la "soluzione".
Fermi tutti !
Il test è fuorviante. Soltanto l'eseguibile "php" è circa 150K più 
grosso, quindi già di suo è normale che occupi più memoria.
Io al massimo avevo fatto delle prove con degli script che passavano da 
400Kb a 600Kb.
Aumentando la consistenza del test:
<?php
$n = 20000;
for($i=0; $i<$n; $i++)
   {
   $r[$i] = new stdClass;
   }
echo 'mem: '.round(memory_get_usage()/1024,2);
?>
Risultati ottimi!
5.2.9 -> 5920.37
5.3.0 -> 4945.54 !!
Si vede che sulla "distanza", vengono fuori le ottimizzazioni/migliorie 
apportate alla 5.3.
Fico :) (salvo sorprese)
Ciao
