呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
#前端 #优质博文
Turbocharging V8 with mutable heap numbers
https://v8.dev/blog/mutable-heap-number
#V8 #JavaScript #性能优化 #benchmarks
via V8 开发团队( v8.dev 官方博客)
Turbocharging V8 with mutable heap numbers
https://v8.dev/blog/mutable-heap-number
AI 摘要:V8 通过引入可变堆数值(mutable heap numbers)和 Int32 类型追踪优化 Math.random 实现,使 async-fs 基准测试性能提升 2.5 倍。
# 文章内容
本文解析了 V8 团队针对 JetStream2 基准测试套件中 async-fs 性能问题的优化过程。该基准测试使用自定义的确定性 Math.random 实现,其核心变量 seed 存储于 ScriptContext 中。由于 seed 的每次更新都会触发新的 HeapNumber 对象分配,并伴随低效的浮点运算,导致显著的内存分配与垃圾回收压力。
V8 团队通过两项关键优化解决此问题:
1. 可变堆数值槽:扩展 ScriptContext 的槽类型追踪能力,允许直接修改 HeapNumber 的值而非重新分配
2. 可变 Int32 类型:追踪数值是否在 Int32 范围内,避免浮点转换开销
这些优化不仅使 async-fs 性能提升 2.5 倍,也为处理类似模式的真实场景代码提供了通用优化方案。
#V8 #JavaScript #性能优化 #benchmarks
via V8 开发团队( v8.dev 官方博客)