Repolode
tinylibs

tinylibs/tinybench

Простая, компактная библиотека для бенчмаркинга JavaScript без зависимостей, работающая в разных JavaScript-средах выполнения.

Звёзды
2,385
Форки
60
Открытые issues
14
Последний коммит
2 часа назад

Что это?

Tinybench — компактная библиотека для измерения производительности функций JavaScript. Создайте экземпляр Bench, добавьте именованные задачи и запустите их, чтобы собрать статистику задержки и пропускной способности: среднее значение, медиану, стандартное отклонение, погрешность и перцентили. Библиотека построена на Web API и для измерения времени использует process.hrtime или performance.now, поэтому работает в разных JavaScript-средах выполнения.

Задачи могут быть синхронными или асинхронными; асинхронные функции определяются автоматически. Параллельное выполнение можно включить для отдельной задачи или для всех задач. Библиотека генерирует события, совместимые с Event, например cycle и warning. Среди настроек — выбор таймера, необязательная компенсация его погрешности, сохранение результатов измерений и отмена через AbortSignal. Результаты доступны в виде данных, а не выводятся в лог; метод bench.table() формирует вывод для console.table().

У пакета нет зависимостей, он распространяется через npm.

Ключевые возможности

  • 01Статистический анализ задержки и пропускной способности, включая перцентили и погрешность.
  • 02Поддержка синхронных и асинхронных задач с автоматическим определением асинхронных функций.
  • 03Режимы параллельного выполнения итераций задач или нескольких задач.
  • 04События, совместимые с EventTarget, для cycle и предупреждений о насыщении таймера.
  • 05Возможность выбрать источник временных меток и включить компенсацию погрешности таймера.
  • 06Поддержка AbortSignal на уровне бенчмарка и отдельных задач.

Сценарии использования

  • Сравнение производительности разных реализаций одной и той же функции на JavaScript.
  • Измерение асинхронных операций, например участков кода, ограниченных скоростью ввода-вывода.
  • Встраивание бенчмарков в набор тестов или CI-задачу с программной обработкой результатов.
  • Запуск микробенчмарков в Node.js, Bun и других JavaScript-средах выполнения.

Быстрый старт

  1. 1

    Установите tinybench как зависимость для разработки с помощью npm

    npm install -D tinybench
  2. 2

    Импортируйте Bench, добавьте задачи и вызовите run() в файле JavaScript или TypeScript

Что важно знать

  • Для задач, длительность которых близка к разрешению таймера, README рекомендует overriddenDuration, поскольку накладные расходы таймера могут исказить результаты.
  • Задачи по умолчанию не записываются в журнал, поэтому результаты нужно извлекать и выводить самостоятельно.

В подборках

Темы

Частые вопросы

Что такое tinybench?
Простая, компактная библиотека для бенчмаркинга JavaScript без зависимостей, работающая в разных JavaScript-средах выполнения. Tinybench — компактная библиотека для измерения производительности функций JavaScript. Создайте экземпляр Bench, добавьте именованные задачи и запустите их, чтобы собрать статистику задержки и пропускной способности: среднее значение, медиану, стандартное отклонение, погрешность и перцентили. Библиотека построена на Web API и для измерения времени использует process.hrtime или performance.now, поэтому работает в разных JavaScript-средах выполнения.
tinybench можно использовать бесплатно? Какая у него лицензия?
tinybench распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
tinybench всё ещё поддерживается?
Активно поддерживается. Последний коммит в tinybench — 22 окт. 2026 г..
Для чего можно использовать tinybench?
Сравнение производительности разных реализаций одной и той же функции на JavaScript. Измерение асинхронных операций, например участков кода, ограниченных скоростью ввода-вывода. Встраивание бенчмарков в набор тестов или CI-задачу с программной обработкой результатов. Запуск микробенчмарков в Node.js, Bun и других JavaScript-средах выполнения.
Как установить tinybench?
Установите tinybench как зависимость для разработки с помощью npm: npm install -D tinybench Импортируйте Bench, добавьте задачи и вызовите run() в файле JavaScript или TypeScript
Где скачать tinybench?
Исходный код и инструкции по установке — на GitHub: https://github.com/tinylibs/tinybench

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты