您好,首先需要明确一下,在效果接近的情况下对比性能才有意义。
针对线下讨论中提供的测试工程,我们做了一点尝试,可以在不降低帧率的情况下减少CPU占用
- 使用 -nothreading,使用单线程
- 在Gamethread等待帧率锁时,使用FPlatformProcess::SleepNoStats(0.001)替换 SleepNoStats(0); (安卓下sleeptime为0走的是sched_yield)
- 在event线程while循环中加入FPlatformProcess::SleepNoStats(0.001),释放cpu时间
另外就是一些常规的操作:降低分辨率、降低帧率、mesh lod等等