MemShrink оказался настолько удобным анализатором для нахождения утечек оперативной памяти в браузере Firefox, что организация Mozilla продолжает использовать именно MemShrink в качестве основного инструментария.
За последние несколько недель разработчикам Firefox удалось найти и устранить более 11 утечек памяти и к тому же улучшить управление и потребление при обработке изображений.
В первую очередь стоит отметить улучшения в управлении памятью на страницах с большим количеством изображений, к сожалению это улучшение было отключено в Firefox 22 и Firefox 23 из-за подтормаживаний прокрутки на страницах с большим количеством мелких изображений, например такая проблема проявляется на Pinterest.
К счастью проблемы, связанные с прокруткой, были решены и улучшения снова включены, но теперь придётся дождаться выхода версии Firefox 24.
Ещё одном улучшением стала реализация "ленивой" генерации байткода (lazy bytecode generation). Новая реализация позволяет не генерировать байткод JavaScript-функций пока они не будут запущены.
Довольно часто на веб-сайтах используются JavaScript библиотеки, такие как jQuery, на практике большая часть доступных функций никогда не запускается, а значит и генерировать зазря лишний байткод надобности нет, именно благодаря этой особенности потребление оперативной памяти в браузере Firefox удалось уменьшить на 5 %, всё лишнее просто не генерирует байткод до момента выполнения. Возможно это кажется небольшим улучшением, но при открытии пользователем множества вкладок может сыграть значительную роль в потреблении памяти.
К тому же такой подход позволяет уменьшить размер GC-кучи, которая используется для создании строк, объектов и форм в момент генерации байткода. Подход ленивой генерации байткода кроме уменьшения потребления оперативной памяти ещё и снижает количество задержек (подтормаживаний, подвисаний) при запуске ресурсоёмких веб-приложений за счёт исключения выполнения неиспользуемых функций и последующей генерации байткода.
Новая реализация ленивой генерации байткода будет доступна также в Firefox 24.
И наконец последнее, что удалось улучшить в Firefox благодаря использованию MemShrink - расширенная отчётность о используемой памяти на вкладке about:memory. Все перечисленные улучшения будут доступны именно в Firefox 24.