Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Gtk: enorme occupazione dello heap

0 views
Skip to first unread message

Alessandro Pellizzari

unread,
Jul 9, 2008, 12:34:35 PM7/9/08
to
Salve,

ho scritto un piccolissimo text editor che usa GLib, Gtk, Pango, Cairo,
GConf, ecc. ecc.
L'eseguibile sono 34 KB, ma in memoria occupa la bellezza di oltre 12 MB,
di cui 7.5 condivisi (librerie).

Ora, quasi 5 MB fisici per un programma di 34 KB mi sembrano
un'esagerazione, quindi ho iniziato a informarmi su come tracciare
quell'occupazione, e sono arrivato a pmap, dove trovo questo:

08048000 24K r-x-- /home/.../Projects/test/test

0804e000 4K rw--- /home/.../Projects/test/test

0865b000 3172K rw--- [ anon ]

...

4e9f3000 4K rw--- /usr/lib/libz.so.1.2.3.3

b75a0000 384K rw-s- [ shmid=0x1f001e ]

b7600000 520K rw--- [ anon ]

...

b76ce000 16K r-x-- /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-
png.so

b76d2000 4K rw--- /usr/lib/gtk-2.0/2.10.0/loaders/libpixbufloader-
png.so

b76d3000 1040K rw--- [ anon ]

...

(Ho lasciato le righe precedenti nella, forse vana, speranza che c'entrino
qualcosa con l'occupazione di heap)

Piu` qualche altra decina di miniblocchi da 4-8 KB dopo ogni libreria, che
trovo abbastanza normali.
Quello che mi puzza sono quegli enormi blocchi da 3.8 MB, 520 KB e 1 MB.

C'e` un modo (preferibilmente semplice) per capire chi li alloca? Quale
libreria o quale funzione del mio software, per esempio.

Ho provato valgrind ma non ho capito bene come funziona. La modalita`
massif mi genera un file di testo che non so come interpretare. :(

Vanno bene anche HOWTO e guide (possibilmente dettagliate) su come fare
questo "backtrace".

Grazie.
Bye.

Ottavio Campana

unread,
Jul 9, 2008, 1:48:24 PM7/9/08
to
Alessandro Pellizzari ha scritto:

> (Ho lasciato le righe precedenti nella, forse vana, speranza che c'entrino
> qualcosa con l'occupazione di heap)
>
> Piu` qualche altra decina di miniblocchi da 4-8 KB dopo ogni libreria, che
> trovo abbastanza normali.
> Quello che mi puzza sono quegli enormi blocchi da 3.8 MB, 520 KB e 1 MB.


la butto lì, ma sono tutto trannce che sicuro: che sia qualcosa che ha a
che fare con il server X? o con il rendering delle finestre?

Alessandro Pellizzari

unread,
Jul 10, 2008, 4:26:47 AM7/10/08
to
Il Wed, 09 Jul 2008 19:48:24 +0200, Ottavio Campana ha scritto:

> Alessandro Pellizzari ha scritto:

>> Quello che mi puzza sono quegli enormi blocchi da 3.8 MB, 520 KB e 1
>> MB.

> la butto lì, ma sono tutto trannce che sicuro: che sia qualcosa che ha a
> che fare con il server X? o con il rendering delle finestre?

La mia ipotesi e` che qualche libreria (gtk, png o altro) allochi spazio
nello heap per le icone del tema o per un buffer grafico per il widget
"textarea", o magari per i glifi dei caratteri, invece che condividerli
con le altre istanze della stessa libreria, ma non so come verificarlo.

Tra l'altro, puo` anche essere che mi stia preoccupando per niente. Magari
quei buffer sono realmente mappati nella VRAM da X, e quindi non occupano
memoria, ma il dubbio mi rode. :)

Bye.

0 new messages