句意为:句柄是更好的指针。

主要观点:介绍一种在 C 和 C++ 中用“索引句柄”替代原始和智能指针的动态内存管理方法,强调将内存管理移入中央系统、将同类型项分组为数组、使用公共索引句柄代替指针以及考虑内存安全等方面。
关键信息

  • 系统负责自身内存分配,可优化内存布局和减少内存碎片。
  • 按类型分组数组可提高缓存利用率和检测内存泄漏。
  • 用索引句柄代替指针,减少内存访问和提高安全性。
  • 内存安全检查在句柄转指针函数中进行,可通过句柄的空闲位检测悬空访问。
  • 可利用句柄在不同进程间共享对象、创建组句柄等。
  • 2018 年 11 月 28 日更新了避免句柄碰撞的简单方法,即每个数组槽有自己的生成计数器。
    重要细节
  • 系统通过明确函数 API 与其他系统和用户代码分离,在中央循环处理数据。
  • 数组项按类型分组可保证内存紧密排列,方便缓存利用和数据布局更改。
  • 句柄需有自己的 C/C++类型,防止类型错误,运行时内存安全检查在句柄转指针函数中。
  • 生成计数器可避免句柄碰撞,槽满后可禁用槽,减少句柄位数。
  • 示例有 sokol-gfx API、Oryol Gfx 模块和 Oryol Animation 扩展模块。
阅读 6
0 条评论