我试图用Java实现raytracer,并且一切正常。
一次,我渲染了一个场景,然后检查了程序的CPU使用情况。
每个虚拟内核都在使用,但总体CPU使用率约为22-23%

我知道当我用Cinema4D渲染东西时,每个虚拟内核都被100%使用。

我该如何存档?它将使我的raytracer运行速度提高4倍吗? (23%-> 100%)

最佳答案

您绝对应该能够达到100%的CPU使用率,并且在其他所有条件相同的情况下,这样做应该可以加快渲染速度。您显然没有达到100%的比例向我表明,您创建的线程不足,或者您的线程阻塞了某些东西。

我发现最有效的方法是每个虚拟核心有一个渲染线程。您可以使用API​​来检测运行时可用的内核数量,并产生许多渲染线程。有关此示例,请参见my java ray tracer


  每个虚拟内核都在使用,但总体CPU使用率约为22-23%


我不确定这是什么意思,但您可能想使用性能分析器对其进行深入研究,以更好地了解线程如何使用CPU。理想情况下,您希望每个线程一直在工作。我使用VisualVM可视化进程线程。

10-08 03:06