Java 光线追踪器增加 CPU 使用率
Java raytracer increase CPU usage
我尝试在 Java 中实现光线追踪器,一切正常。
有一次,我在渲染场景时检查了 CPU-Usage of my program。
每个虚拟核心都在使用,但总体 CPU- 使用率约为 22-23%
我知道当我用 Cinema4D 渲染某些东西时,每个虚拟核心都被 100% 使用。
我该如何存档?它会让我的 raytracer 运行 快 4 倍吗? (23% -> 100%)
您绝对应该能够达到 100% CPU 使用率,并且在其他条件相同的情况下,这样做应该会带来更快的渲染速度。你显然没有达到 100% 表明你没有创建足够的线程,或者你的线程正在阻塞某些东西。
我发现最佳点是每个虚拟核心一个渲染线程。您可以使用 API 来检测运行时可用的内核数量,并生成那么多渲染线程。有关此示例,请参阅 my java ray tracer.
Every virtual core was being used but the overall CPU-Usage was around 22-23%
我不确定你的意思,但你可能想使用性能分析器深入研究它以更好地了解你的线程如何使用 CPU。理想情况下,您希望每个线程都一直工作。我使用 VisualVM 可视化进程线程。
我尝试在 Java 中实现光线追踪器,一切正常。 有一次,我在渲染场景时检查了 CPU-Usage of my program。 每个虚拟核心都在使用,但总体 CPU- 使用率约为 22-23%
我知道当我用 Cinema4D 渲染某些东西时,每个虚拟核心都被 100% 使用。
我该如何存档?它会让我的 raytracer 运行 快 4 倍吗? (23% -> 100%)
您绝对应该能够达到 100% CPU 使用率,并且在其他条件相同的情况下,这样做应该会带来更快的渲染速度。你显然没有达到 100% 表明你没有创建足够的线程,或者你的线程正在阻塞某些东西。
我发现最佳点是每个虚拟核心一个渲染线程。您可以使用 API 来检测运行时可用的内核数量,并生成那么多渲染线程。有关此示例,请参阅 my java ray tracer.
Every virtual core was being used but the overall CPU-Usage was around 22-23%
我不确定你的意思,但你可能想使用性能分析器深入研究它以更好地了解你的线程如何使用 CPU。理想情况下,您希望每个线程都一直工作。我使用 VisualVM 可视化进程线程。