Я сейчас пишу бумагу. В этой статье я расскажу об оптимизации кода. В моем примере я собираюсь выделить два массива в JavaScript. Сравнение фильтра ES5 против вложенного цикла.Академически правильный способ тестирования кода JavaScript?
Мои тесты с использованием jsPerf.com прошли, как ожидалось. Фильтр ES5 на 89-90% медленнее, чем вложенный цикл. Аналогичный результат можно найти, используя performance.now()
(запуск таймера, код запуска, таймер остановки и расчет времени).
Все они отлично подходят для бенчмаркинга. Действительно, они есть. Однако они не являются академически правильными. Сразу после завершения первого теста, что произойдет, если я запустил тестовый тест на 100% CPU? Тогда результаты теста 2 «недействительны».
Каков наилучший способ, правильный способ, сравнить два фрагмента кода JavaScript?
https://mathiasbynens.be/notes/javascript-benchmarking – robertklep
@robertklep Я прочитал это и все проблемы, однако, если я скажу: «Я управлял этим кодом миллион раз и занимал среднее время», я собираюсь получить от этого. Это не правильный способ сделать это. Результаты будут разными, если бы я запускал тесты при 100% использовании ЦП. – MortenMoulder
@MortenMoulder результаты будут разными с разными браузерами. С разными версиями браузеров. Это означает, что результаты, которые вы делаете _now_, могут быть совершенно разными через несколько месяцев. Каково ваше требование о действительности? – vlaz