Что скрывает за собой маленький размер Opera?
Написал: onix в категорию Open Source, Weblife, Алгоритмы, tags: Firefox, Internet, Open Source, OSS, WeblifeИтак, обчитавшись журналов «Хакер» и принципов работы упаковщиков файлов я решил провести небольшой эксперимент.
Я долго смотрел на супермаленькое ядро браузера Opera. Особенно это мне нравилось раньше. Мол, меньше места и все такое. Но взяв в руки пакер исполнительных файлов UPX я понял что минимализм ядра — обманчив.
Подопытные: Opera 9.51 билд 10081, Mozilla Firefox 3.0, Ultimate Packer for eXecutables 3.00w.
Скопировав opera.dll в папку с UPX и набрав в консоли upx -d opera.dll я увидел, что файл opera.dll сжат на 45,57 %. В итоге из 3 мегабайт данных он раздулся аж в целых 7,6. А вот распаковка xul.dll — ядра Mozilla мне не дала результатов, поэтому можно предположить, что ядро Mozilla и так не сжато. А по размеру разница между ними составляет порядка 1,5 мегабайт.
В итоге получилось вот что:
Дальше я решил отследить количество памяти, используемое браузером. До распаковки было так:
После — так:
Первый столбец — процесс, второй — пользователь, третий — ЦП, четвертый — время ЦП, пятый — память, шестой — вирт. память. Остальные два — объекты GDI и число записей. Может, разбежности и не слишком большие, но все-таки они существуют, и не совсем понятно: зачем они паковали файл, ведь это занимает лишнюю память + ресурс процессора (во время распаковки файла в память).
Тем не менее: если сравнить стандартные навоторы Opera и Firefox, то Firefox просто ОГРОМЕН. Он ведь не содержит дополнительно в поставке IRC и email клиенты, полный пакет локализации и еще некоторые мелкие фичи, доступные в Opera. К тому же в процессе работы занимает больше памяти чем Опера. И это, фактически, за счет ядра. Эксперты из Mozilla поясняют такую раздутость Gecko его коммерческим прошлым и обещают со временем добиться солидной оптимизации программы.
Ну что ж. А нам остается только ждать. Firefox имеет очень большое сообщество, способное прийти на помощь разработчикам. Куда лучше и оптимизированнее работает Safari на движке WebKit. Он проходит все ACID-тесты (третий в найтли-сборках) и, возможно, движок можно признать лучшим решением для всех и для каждого с его 5-мегебайтовым несжатым (!) размером и быстрым рендером. Но, у WebKit слишком маленькое сообщество, это новый игрок рынка, пришедший к нам из Linux, доведенный до ума Apple. К тому же, нету пока что нормального свободного браузера на его основе для всех, каким является тот же Firefox. Выход последней версии QT 4.4 с поддержкой WebKit и признание движка компанией Nokia/Trolltech, включение этого движка в мобильные телефоны и пратформу Qtopia дает серьезный шанс выбиться ему в лидеры и затмить коммерческих конкурентов. Но это уже другая истроия и как будет дальше — покажет время.





![Validate my RSS feed [Valid RSS]](http://onix.name/media/images/footer/valid-rss.png)
Записи (RSS)
На самом деле от этого сообщества Firefox никакого толку я не вижу. Под моей Ubuntu он как в первой версии появился, так дизайн и не менял (в отличии от Windows-клона), как во второй версии тормозил, так и сейчас продолжает (версия-то уже 3.5!). Да и вообще для текущей версии Ubuntu последней поддерживаемой считается 3.0 ветка, так что 3.5 у меня с изменённым значком и названием (копирастические ограничения) да ещё и на английском (хотя для меня это в общем-то и не страшная проблема).
Другое дело, что пользоваться-то больше и нечем, так как Opera — KDE, а Firefox — больше для GNOME (родная среда для Ubuntu).
Всё-таки это я тормозил, а не браузер. У меня железо очень слабое.