CLI-инструмент для бенчмаркинга команд со статистическим анализом, прогревочными запусками и экспортом в CSV, JSON, Markdown и AsciiDoc.
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
Установите tinybench как зависимость для разработки с помощью npm
npm install -D tinybench - 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 обновляется ежедневно.
Похожие проекты
CLI на Go для нагрузочного тестирования HTTP(S) с отображением результатов в реальном времени в терминале и веб-интерфейсе; для запросов используется fasthttp.
Профилировщик Rust для поиска узких мест CPU, памяти, async-кода, SQL, HTTP и I/O с экспортом в Prometheus и Grafana.
Настраиваемый фреймворк для оценки LLM, VLM и AIGC-моделей на бенчмарках, нагрузочного тестирования производительности инференса и просмотра результатов на дашборде.
Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.
Инструмент для поиска проблем с производительностью в React: автоматически находит и подсвечивает компоненты с ненужными повторными рендерами без изменений кода.