- PVSM.RU - https://www.pvsm.ru -
Напоминаю (потому что это наверняка подзабылось), что 22 мая 2012 года [1] я экспериментировал с чтением заголовков фидонетовской эхопочты (хранимой в формате JAM) при помощи собственного модуля, сочинённого для Node.js (на основе подвернувшегося движка jParser, документацию по которому перевёл чуть раньше [2]).
Тогда, прогоняя тестовое чтение на одноядерном Pentium IV (2,2 ГГц), я остался недовольным скоростью: требовалось три-четыре секунды на то, чтобы считать 8222 заголовков из архива всего одной эхоконференции, ведущегося с марта 2007 года.
На нынешней неделе у меня снова дошли руки до исходного кода того модуля; и я начал с того, что перенёс прежний тест на движок Mocha [3] и передал тестирование на сервер Travis CI [4], указав в файле .travis.yml [5] такие настройки, которые обеспечивали бы тестирование на трёх последовательных версиях движка 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
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/node-js/43150
Ссылки в тексте:
[1] 22 мая 2012 года: http://habrahabr.ru/post/144268/
[2] чуть раньше: http://habrahabr.ru/post/144008/
[3] Mocha: http://visionmedia.github.io/mocha/
[4] Travis CI: http://about.travis-ci.org/
[5] .travis.yml: https://github.com/Mithgol/node-fidonet-jam/blob/5bac10eb0e2fd1121def0e306c69cf70b66150ec/.travis.yml
[6] На движке Node версии 0.6.21: https://travis-ci.org/Mithgol/node-fidonet-jam/jobs/11144278
[7] На движке Node версии 0.8.25: https://travis-ci.org/Mithgol/node-fidonet-jam/jobs/11144279
[8] На движке Node версии 0.10.12: https://travis-ci.org/Mithgol/node-fidonet-jam/jobs/11144280
[9] Источник: http://habrahabr.ru/post/193482/
Нажмите здесь для печати.