linux user group brescia

immagine del castello

Archivio della mailing list

Cattiva free() e OpenOffice

Vernia Damiano melkor.x a tiscali.it
Sab 2 Ago 2003 18:51:14 UTC
On Sat, 2 Aug 2003, Luca Giuzzi wrote:
> Questa e' una buona cosa comunque in quanto riduce l'overhead nel momento
> in cui effettivamente devi fare i calcoli.

	Nell'implementazione originale avevo evitato di fare questa cosa 
perche' pensavo che copiare qualche decina di interi (molte volte) fosse 
piu' lento di assegnare valori a puntatori. Non ho considerato il problema 
espresso (meglio di me) da Erix e nemmeno il tempo impiegato da malloc() e 
free(), infatti [vedi sotto]

> > 	Risultato: da qualche decina/centinaia di MB di ram utilizzati (e 
> > costantemente in _lenta_ ma inesorabile crescita) sono passato a 600/700 
> > KILO byte, dimensione ragionevole stimando la dimensione dell'istanza del 
> > problema.
> Beh... penso che questo sia un guadagno sia in termini di funzionalita'
> sia in termini di snellezza del codice ... non sarei sorpreso se ci fossero
> stati pure miglioramenti prestazionali (di ordine minimo, in quanto
> il vecchio collo di bottiglia era presumibilmente la RAM, pero' dovrebbero
> esserci)

	Come dicevo ero preoccupato per le memcpy(), ma evidentemente le 
malloc() e le free() sono piu' lente. Infatti per una medesima quantita' 
di calcoli adesso impiego sul mio computer (PII 350) il tempo che prima 
impiegavo sull'Athlon XP 1500+ del laboratorio. Penso sia un BUON 
incremento...

> BTW: se vuoi testare il tuo programma `in condizioni di laboratorio'
> (per trovare memoria allocata e non liberata, ma anche per verificare
> l'impatto del codice sulla cache, etc. etc.) ti consiglio di provare
> valgrind... e' veramente ben fatto 

	Grazie del consiglio, ma non e' cosi' necessario abbia prestazioni 
eccezionali. Solo che se la RAM usata continua ad aumentare rischio di 
andare in "Out of space" prima del termine del processo. Questo e' il 
problema per cui ho dovuto riscrivere (o meglio modificare) il mio 
programma.

-- 
						Ciriciao
					LtC. Melkor?! B. Xapatan




Maggiori informazioni sulla lista Lug