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
|