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

в 10:13, , рубрики: Fido, Fidonet, JAM, jParser, Node, node.js, Node.js на узле Фидонета, nodejs, метки: , , , , , , ,

Недоволен скоростью джаваскриптов? — Подожди год полтора, и это пройдёт!Напоминаю (потому что это наверняка подзабылось), что 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 основывается), и в сочетании с ростом производительности компьютеров это позволяет придерживаться выжидательной тактики, вынесенной мною в заголовок.

Можно тратить и своё время на оптимизацию работы своих джаваскриптов, но только если больше нечем серьёзно улучшить их, и только если вы уверены в том, что покажете сравнимый результат (ускорение в полтора-два раза за полгода-год), а не то для конечных пользователей небольшое ускорение скрипта всё равно останется малозаметным на фоне резкого ускорения движка за то же время.

Автор: Mithgol

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js