Building a Copying GC for the Plush Programming Language
6 months ago
- #programming
- #garbage-collection
- #actor-model
- Plush是一种受Lox/JavaScript启发的动态类型编程语言,专为音频与图形编程设计。
- 该语言采用基于参与者的并行模型,通过避免锁和内存安全问题简化多线程编程。
- Plush虚拟机内置垃圾回收器,可管理参与者间传递消息的内存,确保失效对象被回收。
- 虚拟机自动静默拷贝参与者间的消息,程序员无需手动冻结或深拷贝数据。
- 每个参与者配备两个分配器:私有分配器实现无锁内存分配,邮箱分配器专用于接收消息。
- 采用碰撞分配器与复制式垃圾回收机制,确保内存分配既快速又简单。
- 通过与友人协作攻克了垃圾回收器实现的拖延问题,两周内完成90%开发进度。
- 在M1芯片MacBook Air上运行的3D动画演示达到60帧/秒,展现了Plush的性能实力。
- 待完善的垃圾回收功能包括:满消息分配器处理及大规模回收的性能优化。
- 现招募贡献者协助性能调优,并共同开发图形/音频应用等演示程序。