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

Недоволен скоростью джаваскриптов? — Подожди год-полтора, и это пройдёт!

Время на прочтение 2 мин
Количество просмотров 11K
Напоминаю (потому что это наверняка подзабылось), что 22 мая 2012 года я экспериментировал с чтением заголовков фидонетовской эхопочты (хранимой в формате JAM) при помощи собственного модуля, сочинённого для Node.js (на основе подвернувшегося движка jParser, документацию по которому перевёл чуть раньше).

Тогда, прогоняя тестовое чтение на одноядерном Pentium IV (2,2 ГГц), я остался недовольным скоростью: требовалось три-четыре секунды на то, чтобы считать 8222 заголовков из архива всего одной эхоконференции, ведущегося с марта 2007 года.

На нынешней неделе у меня снова дошли руки до исходного кода того модуля; и я начал с того, что перенёс прежний тест на движок Mocha и передал тестирование на сервер Travis CI, указав в файле .travis.yml такие настройки, которые обеспечивали бы тестирование на трёх последовательных версиях движка Node.js — на 0.6, на 0.8 и на 0.10.

Оказалось, что разница в скорости видна невооружённым глазом:


При взгляде на эти результаты сперва возникает соблазн видеть арифметическую прогрессию (три секунды → две секунды → одна секунда) с напрашивающимся выводом о том, что в следующей версии движка Node тест вообще станет срабатывать мгновенно.

На самом деле, конечно же, результат свидетельствует только о том, что в версии Node 0.8 тест срабатывает примерно в полтора раза быстрее, чем в предыдущей версии (0.6), а в версии Node 0.10 — даже в два раза быстрее, чем в предыдущей (0.8).

Но и то неплохо.

Кроме того, нынешней весною я себе приобрёл более новый компьютер на основе четырёхъядерного процессора i7-3770, и на нём тот же тест занимает время ещё меньшее — оно ближе к половине секунды, чем к целой секунде:

[скриншот]

Оно и понятно: Travis-то ведь пользуется виртуальными машинами, а я реальною.

Совокупность изложенных выше наблюдений позволяет уверенно и радостно утверждать, что Node.js резко ускоряется от версии к версии (вероятно, в том числе и за счёт роста скорости движка V8, на котором Node основывается), и в сочетании с ростом производительности компьютеров это позволяет придерживаться выжидательной тактики, вынесенной мною в заголовок.

Можно тратить и своё время на оптимизацию работы своих джаваскриптов, но только если больше нечем серьёзно улучшить их, и только если вы уверены в том, что покажете сравнимый результат (ускорение в полтора-два раза за полгода-год), а не то для конечных пользователей небольшое ускорение скрипта всё равно останется малозаметным на фоне резкого ускорения движка за то же время.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Согласны ли вы с этим выводом?
14.92% Да 84
30.91% Скорее да 174
19.89% Не уверен(а) 112
19.18% Скорее нет 108
15.1% Нет 85
Проголосовали 563 пользователя. Воздержались 198 пользователей.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Заранее интересны ли дальнейшие мои блогозаписи примерно на такую же тему?
56.3% Да, пиши ещё о тестировании модулей Node при помощи Mocha 192
27.27% Нет, только не о тестировании модулей Node при помощи Mocha 93
34.9% Да, пиши ещё о сочинении модулей Node для Фидонета 119
43.7% Нет, только не о сочинении модулей Node для Фидонета 149
Проголосовал 341 пользователь. Воздержались 243 пользователя.
Теги:
Хабы:
Всего голосов 51: ↑25 и ↓26 -1
Комментарии 8
Комментарии Комментарии 8

Публикации

Истории

Работа