Конкретные цифры из стримов 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 |
Источники
См. также