Pull to refresh

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

Reading time 2 min
Views 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 основывается), и в сочетании с ростом производительности компьютеров это позволяет придерживаться выжидательной тактики, вынесенной мною в заголовок.

Можно тратить и своё время на оптимизацию работы своих джаваскриптов, но только если больше нечем серьёзно улучшить их, и только если вы уверены в том, что покажете сравнимый результат (ускорение в полтора-два раза за полгода-год), а не то для конечных пользователей небольшое ускорение скрипта всё равно останется малозаметным на фоне резкого ускорения движка за то же время.
Only registered users can participate in poll. Log in, please.
Согласны ли вы с этим выводом?
14.92% Да 84
30.91% Скорее да 174
19.89% Не уверен(а) 112
19.18% Скорее нет 108
15.1% Нет 85
563 users voted. 198 users abstained.
Only registered users can participate in poll. Log in, please.
Заранее интересны ли дальнейшие мои блогозаписи примерно на такую же тему?
56.3% Да, пиши ещё о тестировании модулей Node при помощи Mocha 192
27.27% Нет, только не о тестировании модулей Node при помощи Mocha 93
34.9% Да, пиши ещё о сочинении модулей Node для Фидонета 119
43.7% Нет, только не о сочинении модулей Node для Фидонета 149
341 users voted. 243 users abstained.
Tags:
Hubs:
-1
Comments 8
Comments Comments 8

Articles