linux user group brescia

immagine del castello

Archivio della mailing list

Cattiva free() e OpenOffice

Bauno bauno a inwind.it
Ven 1 Ago 2003 08:24:43 UTC
On Thu, 2003-07-31 at 15:36, Vernia Damiano wrote:
> 	Ciao, due quesiti assolutamente diversi uno dall'altro:
> 1. Sapete nulla circa inefficienze della funzione free()?

No, ma posso raccontarti un paio di libri sulle inefficienze dei
programmatori...:)

>  Il mio programma 
> continua ad aumentare di dimensioni in memoria, nonostante io deallochi 
> sempre e per benino la memoria che uso. Non sara' che malloc() (e 
> calloc()) allocano comunque nuova memoria anche se dei blocchi precedenti 
> sono stati liberati? 

Certo, un bug potrebbe impedire alla memoria di essere liberata.
Secondo te, รจ + probabile che stia nella libc o nel tuo programma?

> L'unica spiegazione che ho trovato finora e' che i 
> blocchi che alloco (di dimensioni diverse) "interferiscono" tra loro e 
> lasciano molti buchi inutilizzati. Comunque anche cosi' riseco a stento a
> giustificare la grande quantita' di RAM usata. Credete che allocare e 
> deallocare sempre e solo blocchi delle medesime dimensioni possa 
> migliorare questo aspetto?

1) In linea di massima, se sei in una situazione in cui continuamente
allochi e deallochi non hai fatto un buon lavoro a livello di design
delle strutture dati.
2) Fossi in te, mi metterei a cercare il posto, nel tuo programma, nel
quale la free() non viene eseguita.


-- 
Bauno - Eurydices, oro, properata retexite fata!
"Potrebbe capitare anche a noi, come a certi abitanti delle isole
polinesiane, di finire disintegrati vivi dalla disperazione" (GP)






Maggiori informazioni sulla lista Lug