0.6.6:内存管理改进

主要观点:新里程碑为 Red 的内存管理和垃圾收集带来诸多底层改进,以完成内部内存模型并为未来稳定版 Red v1.0 做准备。
关键信息:

  • 新增外部资源管理器,可跟踪和释放未使用资源,如图像位图缓冲区和字体句柄。
  • 使 Red GC 更精确,通过帧记录提示、可变提示、优化指针识别性能和优化帧遍历等方式。
  • GC 能回收节点帧,通过特殊 GC 传递移动活节点并释放空帧,还改进了节点帧内部结构。
  • 引入外部 Red 值引用管理系统,仅向外部代码导出引用。
  • 增加底层分配跟踪,利用薄层跟踪分配并提供额外功能。
  • 有其他各种变化,如 stats 原生改进、降低内存分配等。
  • Red/System 有相关变化,如添加系统库图像支持等。
    重要细节:
  • 内存模型中所有 Red 值存储在系列中,通过节点引用访问缓冲区。
  • 帧记录提示通过位数组和偏移量来匹配调用帧和位图数组。
  • 对于可变函数,根据类型使用不同的位图创建方式。
  • 优化指针识别性能使用缓存排序列表和二分搜索。
  • 外部值引用管理系统避免节点指针存储在 GC 无法触及的地方。
  • 底层分配跟踪可在 Red 退出时释放系统分配的内存区域等。
  • 下一个版本将具备全异步 IO 支持等其他主要功能。
阅读 6
0 条评论