Бенчмарки — архив цифр

Конкретные цифры из стримов AsForJS и автора. Полезны для аргументации в код-ревью и спорах. Цифры стареют — переснимай перед серьёзными решениями.

Циклы и массивы

Сценарий Цифра Источник
Array float vs SMI (Chrome) float в 2 раза медленнее SMI AsForJS, 2023-06-23
Array float vs SMI (Node) float быстрее SMI (~0.95 vs 1.4с) — артефакт push AsForJS, 2023-06-23
OSR на цикле до 10x разница на идентичном коде AsForJS, 2025-10-13

V8 архитектура

Параметр Значение
SMI диапазон 32-bit 31 бит знакового int
SMI диапазон 64-bit без compression 32 бита
SMI с pointer compression 31 бит
Порог hot (приблизительно) ~10⁴ вызовов
IC: monomorphic 1 форма
IC: polymorphic 2-4 формы
IC: megamorphic 5+ форм
Hidden class transitions каждое новое поле = новый class
Cache line CPU 64 байта
Pointer compression экономия ~2x памяти

JSON / парсинг

Сценарий Цифра Источник
JSON.parse vs JS literal на больших объектах 1.7-2x быстрее AsForJS, 2023-05-17

Объекты

Сценарий Цифра Источник
delete obj.x объект → dictionary mode, доступ медленнее в 5-10x стандартный V8 факт
Конструктор с разным порядком полей разные hidden classes автор, 2019-10-29

Async

Сценарий Цифра Источник
async-функция «синхронной» работы оверхед на каждый вызов — создание промиса + микротаска AsForJS, 2025-07-08

Источники

См. также