dezone

Just another dezone weblog

Un confronto sul consumo della memoria

Ho fatto dei testo sull’occupazione della memoria dei tre browser per OS X. Il test è stato eseguito all’avvio del browser e su tre diverse pagine:

Il test per ogni browser è stato eseguito nel seguente modo: browser chiuso e riaperto, quindi eseguita misura oppure incollata url della pagina di test ed eseguita misura; in ogni caso la memoria reale indicata nell’Activity Monitor veniva misurata quando il valore si stabilizzava, quindi non necessariamente subito dopo il termine del caricamento della pagina. A tal proposito ho notato un comportamento anomalo di Opera sulla pagina di demo di gwt-ext, per cui la memoria occupata è continuata ad aumentare col tempo al ritmo ci 100k al secondo, facendomi pensare in un primo momento ad un potenziale memory leak, salvo poi stabilizzarsi trascorso qualche minuto.

Le estensioni usate nell’ultimo test (Firefox 3.0RC3 + ext) sono: Adblock Plus + Adblock Filterset.G Updater, DownloadHelper, Firebug, Fission, Flagfox, Operator, PicLens e WebDeveloper. Noterete che il maggior consumo di memoria in presenza delle estensioni è anche in funzione della pagina caricata. È per colpa di Firebug? Di WebDeveloper? Dovrei indagare ulteriormente.

I consumi indicati sopra si riferiscono chiaramente alla situazione particolare in cui il browser è stato appena avviato. Già dopo aver lasciato la pagina di test, la memoria occupata si riduce ma non ritorna a quella occupata dal browser appena avviato. Non ho messo del grafico questi valori. Mi sono soffermato però sul valore osservato con Safari dopo aver lasciato il demo di GWT Ext, cioè 44Mb, un valore distante dai 14 iniziali. Disabilitando la cache la memoria non rilasciata si riduce di poco, così che circa 25Mb vengono comunque tenuti occupati. Oltre la cache Safari usa la memoria anche per altro. Cosa?

La risposta a questa domanda l’ho trovata con Instruments. Ho usato il template “Object Allocator” per tracciare l’attività di Safari. La categoria più consistente di oggetti allocati e non rimossi dopo la chiusuda della pagina di test è quella dei “GeneralBlock-1536″. La gran parte delle voci di questa categoria fanno riferimento a sqlite. Immagino quindi che Safari usi sqlite sono quando è necessario, non rilasciando le risorse da esso occupate così da riutilizzarle dopo.

18 Giugno, 2008 Pubblicato da fdigiuseppe | Firefox 3, Macintosh, Opera, Safari, internet, performance, web | | Ancora nessun commento.

Un post da diario

È un periodo di studio in cui sto prendendo confidenza con nuovi argomenti. GWT, bsd sockets, Mockito, Virtools ed altre cose.

Con GWT ho già realizzato un prototipo d’interfaccia da usare come base di un progetto di prossima realizzazione. Ho usato la 1.4 e mi appresto a provare la 1.5.

Le socket mi servono per un’idea che dei miei amici mi hanno suggerito. Visto che i progetti di prova li sto scrivendo in C++, ne approfitto anche per rinfrescarmi la memoria su questo linguaggio. Più in la mi toccherà rivedere anche le QT, visto che intendo usarle per la GUI del “coso” a cui sto lavorando.

Mockito, che mi ha fatto conoscere il mio collega maeste, è un oggettino utile per fare mock object java, quindi per i test di unità.

Virtools è una tecnologia per lo sviluppo di ambienti virtuali 3D. Mi sta creando indirettamente qualche problema. Per installarlo sulla mia macchina mi serve una copia di Windows perfettamente funzionante, possibilmente non virtualizzata. Dato che non vorrei partizionare il disco del mio MacBook Pro, sto tentando di installarlo su un disco USB esterno, senza successo. Cioè, dopo vari giri sono riuscito a mettere una installazione di XP sul disco esterno, ma non riesco a fare il boot. In compenso però ho conosciuto rEFIt, un boot manager per mac che tra le sue funzioni comprende l’apertura della shell EFI.

Nella lista non ho citato JBoss ESB, che per il momento ho tralasciato, ma che dovrò affrontare quanto prima approfonditamente.

Continuo a prestare attenzione alle novità che riguardano WebKit. Oggi ho letto un articolo su Meta, un porting di WebKit pensato per essere integrato nei videogame. Ne avevo parlato qualche post fa.

12 Giugno, 2008 Pubblicato da fdigiuseppe | WebKit, java, news, software, sviluppo, tecnologia | | 3 Commenti