Как стать автором
Обновить

Сравнение производительности Javascript-движков с родным Linux приложением

Время на прочтение2 мин
Количество просмотров2.6K
Сегодня существует множество браузеров и все они как-то борются друг с другом ради рынка. Основные игроки: Internet Explorer, Mozilla Firefox, Google Chrome, Safari. И на сегодня они друг у друга копируют внешний вид (все пытаются походить на Google Chrome) и все поголовно хвалятся кто из них лучше соответствует HTML 5, правда главное, что они в нем нахваливают — это тэг canvas.

Вот и получается, что все они практически одинаковы, но как-то ведь им надо выделяться, чтобы быть лучшими? А здесь есть еще кое-что, что они всегда нахваливают — скорость работы. Лет 10 назад под скоростью работы браузера подразумевалась скорость загрузки страницы (например, часть армии поклонников Opera как раз из за этой возможности). А вообще на сегодня важна работа Javascript, реализацией которого кичится каждый браузер. Они даже движкам Javascript дают свои имена и это становится их очередной торговой маркой. Вот именно та самая скорость работы Javascript и является сегодня основным достоинством того или другого браузера.

К написанию этой статьи я пришел после прочтения "Десяти вещей, которые вы не ожидали от HTML/Javascript". И был так сильно удивлен тому, что там даже рисовалась 3D-графика на JavaScript'е, что захотелось самостоятельно провести некоторые измерения производительности.

Я решил как раз сравнить эту скорость и провел маленькое исследование. Я написал программу поиска n простых чисел: не самая лучшая задача для вычисления производительности, но зато в ней участвует море различных элементов языка (числа с плавающей точкой, контейнеры, циклы, ветвления) и запустил её на различных платформах (браузерах, JVM, Linux). Ну и собственно результат представлю в виде коэффициентов:
  1. Linux Native Application (Ubuntu, g++ 4.4) — 1
  2. Java Application (Ubuntu, Oracle Java 6.20) — 1,53
  3. Firefox 4b6pre (Ubuntu) — 1,62
  4. Internet Explorer 9 beta (Windows) — 1,87
  5. Google Chrome 6.0.472 (Windows, Ubuntu) — 2,09
  6. Opera 10.64 (Ubuntu) — 2,93
  7. Firefox 4b5 (Windows) — 3,12
  8. Safari 5.0.3 (Windows) — 4,37

По мимо прочего я проверял Firefox 3.6 (Ubuntu, Windows), Konqueror 4.4.2 (Ubuntu) и Internet Explorer 8, но их производительность была меньше на порядок. Здесь нет полноты всех возможных актуальных систем, а лишь некоторые из них, которые были мне удобны для запуска. Опять же некоторые выводы можно сделать из этих данных.

Использованные операционные системы: Ubuntu 10.04 x64, Windows 7 Home Premium x64
Исходный код программ: на JavaScript, на C++, на Java

Вот, таким образом получилось то, что выполнение Javascript, благодаря сложным механизмам JIT-компиляции на современных браузерах выдает производительность близкую к Java-приложениям или приложениям более низкого уровня.
Теги:
Хабы:
Всего голосов 50: ↑42 и ↓8+34
Комментарии69

Публикации

Истории

Работа

Ближайшие события