我非常激动地看到Unity 6.7 alpha 2中终于开始支持基于CoreCLR (.NET 10)的播放器。所以我建立了一个CPU光线追踪基准测试。这项基准测试将建立BVH,运行光线追踪并渲染结果。基准测试代码使用纯C#代码编写,100%安全,未使用NativeArray,Jobs,编译器内置或GPU计算,因此我们可以比较实际运行性能。 我附上详细结果的图片。所有基准测试都使用发布构建。 简而言之: Mono: - 场景生成:4.969 ms - BVH构建:12.445 ms - 中位数单线程光线追踪时间:101,041.867 ms,0.072M光线/秒 - 中位数多线程光线追踪时间:7,119.707 ms,1.018M光线/秒 IL2CPP: - 场景生成:0.819 ms - BVH构建:3.829 ms - 中位数单线程光线追踪时间:15,862.338 ms,0.457M光线/秒 - 中位数多线程光线追踪时间:1,350.007 ms,5.367M光线/秒 CoreCLR: - 场景生成:0.089 ms - BVH构建:1.424 ms - 中位数单线程光线追踪时间:8,775.239 ms,0.826M光线/秒 - 中位数多线程光线追踪时间:758.274 ms,9.555M光线/秒。因此,CoreCLR比Mono快837%,比IL2CPP快78%。 运行游戏后内存使用量: - Mono:556.8 MB - IL2CPP:504.0 MB - CoreCLR:501.7 MB。因此,CoreCLR不仅超越了Mono和IL2CPP,还赢得了内存足迹。这个结果让我非常震惊,现在我非常期待看到GA和CoreCLR被作为默认选项。 一个附注,Mono在图片中的校验和与其他不同,因为Mono太慢了,我不得不大幅减少暖启动迭代数。否则,基准测试将永远无法完成。 基准测试代码可以在https://gist.github.com/hez2010/353e5fe25ce7eb772cac07e3c86a0829找到。
在Unity中使用CPU路径追踪进行Benchmarked CoreCLR播放器
评论 (0)