Lobsters | 📄 原文链接 | 2026-10-24 收录

对象属性别直接用哈希表:shape 让 a.b 变快

来源:bernsteinbear.com — 2026-10-21

📋 概述

动态语言的实例常被实现成名字到值的哈希表,但 a.b 这种最常见的操作就要哈希、探测和一次额外的内存跳转,实际可能花掉上千条 CPU 指令。运行时于是引入 map、layout、shape、hidden class 这套东西:用小的整数索引代替字符串哈希、把属性内联存在对象上、并给每种布局一个可比较的稳定标识。作者照 CF Bolz-Tereick 的对象模型文章抽出一份能在脑子里装下的最小实现。

🔑 核心要点

💡 金句

This means that literally every operation a.b is doing hundreds or thousands of CPU instructions, including multiple dependent memory loads.
← 返回 Lobsters 首页