Вызывать асинхронный метод в конструкторе?

Быстрый ответ

В jQuery (более конкретно на Sizzle) мы используем этот (мастер проверки и открытая скорость / index.html в вашем браузере), который, в свою очередь, использует benchmark.js . Это используется для проверки производительности библиотеки.

Длинный ответ

Если читатель не знает разницы между эталоном, рабочей нагрузкой и профайлерами, сначала прочитайте некоторые основы тестирования производительности на вкладке "readme 1st" section of spec.org . Это касается тестирования системы, но понимание этих основ также поможет провести тестирование JS. Некоторые основные моменты:

Что такое эталон?

Тест является «стандартом измерения или оценки» (Словарь Вебстера II). Компьютерный тест обычно представляет собой компьютерную программу, которая выполняет строго определенный набор операций - рабочую нагрузку - и возвращает некоторую форму результата - метрику - описание способа выполнения тестируемого компьютера. Компьютерные контрольные показатели обычно измеряют скорость: насколько быстро была заполнена рабочая нагрузка; или пропускной способности: сколько единиц рабочей нагрузки за единицу времени было завершено.

Должен ли я тестировать собственное приложение?

В идеале лучший сравнительный тест для системы будут вашим собственным приложением с вашей собственной рабочей нагрузкой. К сожалению, часто нецелесообразно получать широкую базу надежных, повторяемых и сопоставимых измерений для разных систем, используя собственное приложение с вашей собственной рабочей нагрузкой. Проблемы могут включать в себя создание хорошего тестового примера, проблемы конфиденциальности, трудности с обеспечением сопоставимых условий, времени, денег или других ограничений.

Если не мое собственное приложение, то что?

Возможно, вы захотите рассмотреть возможность использования стандартных эталонных тестов в качестве контрольной точки. В идеале стандартизованный эталонный тест будет переносимым и, возможно, уже запущен на интересующих вас платформах. Однако перед тем, как вы рассмотрите результаты, вы должны быть уверены, что понимаете взаимосвязь между потребностями вашего приложения / компьютера и тем, что контрольный показатель измеряется. Являются ли эталоны похожими на виды приложений, которые вы запускаете? Имеют ли рабочие нагрузки аналогичные характеристики? На основе ваших ответов на эти вопросы вы можете начать понимать, как эталон может приблизиться к вашей реальности.

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

blockquote>

Тестирование производительности JS

В идеале, лучший перфекционный тест будет использовать ваше собственное приложение с вашим переключением рабочей нагрузки, что вам нужно проверить: разные библиотеки, машины и т. д.

Если это невозможно (и обычно это не так). Первый важный шаг: определите свою рабочую нагрузку. Он должен отражать рабочую нагрузку вашего приложения. В этот разговор Вячеслав Егоров говорит о дерьмовых нагрузках, которых вам следует избегать.

Затем вы можете использовать такие инструменты, как benchmark.js, чтобы помочь вам собирать показатели, обычно скорость или пропускную способность. В Sizzle мы заинтересованы в сравнении того, как исправления или изменения влияют на системную производительность библиотеки.

Если что-то работает очень плохо, следующим шагом будет поиск узких мест.

Как найти узкие места? Profiler

Каков наилучший способ профилировать выполнение javascript?

148
задан DavidRR 26 May 2016 в 12:35
поделиться