☰
将 Unity 移植到 CoreCLR
2026/9/28 21:13:41 网站建设 项目流程

关于垃圾收集器的一些情况

C# 语言的内存分配由垃圾回收器管理。在需要分配内存时,分配内存的代码可以在不再使用内存时忽略内存。GC 稍后会过来回收这些内存,供其他代码使用。

Unity 目前使用的是Boehm GC,这是一种保守的、不移动的 GC。它会扫描所有线程栈(包括托管代码和本地代码),寻找要收集的托管对象,一旦分配了托管对象,该对象在内存中的位置就永远不会移动。

.NET使用CoreCLR GC,它是一种精确的移动GC。它仅在托管代码中跟踪已分配的对象,并在内存中移动这些对象以提高性能。这样,CoreCLR GC 就能以更少的开销工作,为您的游戏提供更好的性能特性。

这两种 GC 都非常出色,但它们对使用它们的代码提出了不同的要求。Unity 引擎和编辑器代码是根据 Boehm GC 的要求开发的,因此要使用 CoreCLR GC,我们需要对 Unity 代码进行一些修改,包括修改 Unity 编写的自定义 marshaling 工具 - 绑定生成器和代理生成器。

垃圾收集器到底是做什么的?</

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询