Oggi, ovvero ieri essendo ormai l'una del mattino
, Mozilla ha dato alla luce Firefox 3. Come web developer, mi è sembrato interessante ripescare questo post, Firefox 3 Memory Usage, di qualche mese fa, ma molto significativo, in particolare oggi, avendo ora a disposizione la release ufficiale del browser di Mozilla. Nel post, sono gli sviluppatori del layout engine di Firefox a spiegare come hanno drammaticamente ridotto il problema di frammentazione della memoria e del conseguente memory leak, il cui effetto più disastroso e visible è noto a tutti gli sviluppatori di rich web client applications: più tieni aperto il brower (qualunque browser) più la memoria ad esso allocata dal SO aumenta. E ciò proporzionalmente al numero di pagine e/o tab aperti. Dopo un certo tempo, il browser sembra assestarsi ad un valore di soglia, ma spesso capita che - per applicazioni che fanno molto uso di AJAX e DOM, ad esempio - il memory leak risulti inarrestabile e finisca per bloccare del tutto il browser, con buona pace dell'applicazione.
Ebbene, guardando il grafico si evince che non solo Firefox 3 abbatta significativamente tale soglia, ma che addirittura rilasci sostanzialmente le risorse allocate, attraverso un fine tuning delle risorse in cache ed un efficiente garbage collector, che in Gecko 1.9 è dotato dell'intelligenza sufficiente ad evitare i riferimenti incrociati ad oggetti in memoria - automated cycle collector, di scaricare dalla memoria le immagini decompresse e non più utilizzate (il chè non avveniva in FF2). Questo risultato è per me impressionante, e sembra che i ragazzi di Mozilla abbiano fatto un enorme lavoro sull'engine Gecko, che si porta dietro ben 15K di nuove funzionalità. D'altra parte il benchmark a cui si riferisce il grafico, simula una navigazione stressante, ma non necessariamente realistica, in particolare nel caso di web client e comunque applicazioni client specifiche, che facciano ampio uso di DOM, AJAX, ecc.
Links:
Firefox 3 Memory Usage on Pavlon.net: http://blog.pavlov.net/2008/03/11/firefox-3-memory-usage/
Firefox 3 Release Notes: http://www.mozilla-europe.org/it/firefox/3.0/releasenotes/
Mozilla Layout Engine (Gecko 1.9): http://www.mozilla.org/newlayout/
