И еще про оптимизации в V8
(статья с блога v8, она актуальна по состоянию на 2026)
👉 https://v8.dev/blog/pointer-compression
- Большая часть памяти V8 хранит указатели и небольшие значения (SMI)
- SMI означает Small Integer, то есть небольшое целое число
- SMI хранится прямо в ячейке значения без создания отдельного объекта в куче
- Сжатый указатель хранит небольшое смещение адреса вместо полного 64-битного адреса
- Один изолят V8 должен хранить свою кучу в области памяти размером до 4 ГБ
- Сжатые указатели и SMI занимают 32 бита в памяти
- V8 разворачивает указатели при чтении и сжимает их при сохранении
- V8 хранит базовый адрес кучи в регистре CPU для быстрого разворачивания указателей
- Сжатие указателей уменьшает диапазон целых чисел SMI и ограничивает прямое значения double
- Это может уменьшить размер кучи V8 до 43%, а использование памяти процессом рендеринга браузера до 20%
Post #2117
2.39K

- 👍 8
- ❤ 4
- 👎 1
- 👨💻 1