linux user group brescia

immagine del castello

Archivio della mailing list

Cattiva free() e OpenOffice

andrea gelmini andrea.gelmini a lugbs.linux.it
Ven 1 Ago 2003 09:30:14 UTC
On Thu, Jul 31, 2003 at 03:36:51PM +0200, Vernia Damiano wrote:
> 
> sono stati liberati? 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?
la frammentazione della ram e` un problema classico di qualsiasi OS, che
per altro non risolvi allocando blocchi sempre delle stesse dimensioni (nel
draft per il lavoro sul 2.7 sono gia` state discusse tre modifiche che, tra
le altre cose, permetteranno la deframmentazione della stessa a caldo).
ora, prendendo per buono che non vi siano assolutamente bug nel tuo
programma (provato con i vari gccchecker et similia?), una spiegazione, che
pero` andrebbe confrontata anche con la quantita` di ram coinvolta, sta nel
fatto che, per ragioni di performance, quando rilasci una certa quantita`
di ram, il kernel la mantiene comunque assegnata per il processo
interessato, pronto a riciclarla per future malloc (questo, peraltro, e`
uno dei modi efficaci per limitare l'effetto di frammentazione). esiste poi
un segnale, che il kernel puo` lanciare ove necessario, che invita/obbliga
tutti i processi a rilasciare effettivamente la ram non utilizzata
(tecnicamente non e` esattamente cosi`, ma spero di aver reso l'idea).
nota a margine... a differenza di quanto mi pare fosse sostenuto anche qui,
e` preoccupazione della libc riazzerare il contenuto della memoria
liberata, non del kernel.

> 2. Il discorso si e' interrotto quasi subito, ma siccome sono riuscito a 
> convincere mio padre a passare da Office a OpenOffice mi interesserebbe 
> sapere qualche opinione in piu' sul pacchetto. Lui lo userebbe con 
> losezozz, ma se non ricordo male la ML e' sul software libero anche in 
> generale, giusto? ;-P
l'unica raccomandazione e` di farli utilizzare l'ultima rc. hanno corretto
veramente un monte di bug.

ciao,
andrea



Maggiori informazioni sulla lista Lug