我尝试用Java实现一个光线跟踪器,一切正常。 有一次,我正在渲染一个场景,我检查了我的程序的CPU使用情况。 每个虚拟核心都在使用,但总体CPU使用率约为22-23%
我知道当我使用Cinema4D呈现内容时,每个虚拟内核都被100%使用。
我如何存档?它会让我的光线跟踪器运行速度快4倍吗? (23% - > 100%)
答案 0 :(得分:1)
你绝对应该能够达到100%的CPU使用率,而其他条件相同,这样做可以提高渲染速度。您显然不是100%表示您要么没有创建足够的线程,要么您的线程阻塞某些东西。
我发现最佳位置是每个虚拟核心一个渲染线程。您可以使用API来检测运行时可用的核心数,并生成许多渲染线程。有关此示例,请参阅my java ray tracer。
每个虚拟核心都在使用,但整体CPU使用率约为22-23%
我不确定你的意思,但是你可能想要使用性能分析器来深入了解你的线程如何使用CPU。理想情况下,您希望每个线程始终工作。我使用VisualVM来可视化进程线程。