CPU使用率JavaFX

时间:2015-11-10 11:06:42

标签: java opengl javafx-2 directx

我使用JFX应用程序遇到了一些问题。在我的本地开发系统(Linux)上,我的应用程序的CPU使用率约为0-2%。当我在客户Windows vm系统上安装并运行我的应用程序时,cpu的使用率要高得多,大约为50-70%。此现象仅在VM系统上发生。如果我在本地Windows系统上运行应用程序,一切运行正常。因此我猜它与vm图形适配器及其配置有关。但客户表示没有可用的图形适配器配置。  我研究了类似的性能问题,并尝试了一些JVM选项,如:

-Dprism.order=es2,es1,sw,j2d
-Dsun.java2d.opengl=true
-Dprism.vsync=false
-Dprism.forceGPU=true

选项-Dprism.order = es2,es1,sw,j2d将使用率降低到25%以下。仍然很高但我不知道我还能做什么?

编辑:感谢您的回复。在运行没有-Dprism.order = es2,es1,sw,j2d的应用程序时,我得到了以下消息和70%的CPU使用率:

D3DPipelineManager: Created D3D9Ex device Direct3D initialization succeeded (X) Got class = class com.sun.prism.d3d.D3DPipeline Initialized prism pipeline: com.sun.prism.d3d.D3DPipeline 

当我使用选项运行应用程序时,我收到了以下消息和20%的cpu使用情况:

Prism pipeline name = com.sun.prism.sw.SWPipeline (X) Got class = class com.sun.prism.sw.SWPipeline Initialized prism pipeline: com.sun.prism.sw.SWPipeline 

1 个答案:

答案 0 :(得分:0)

根据JavaFX architecture,如果渲染引擎找不到合适的硬件加速管道,它会回退到CPU密集型的软件渲染。由于它是一个存在问题的VM系统,因此JavaFX可能没有正确安装和/或过时和/或不支持任何图形驱动程序。类似于DirectX库,因为这是JavaFX在Windows上使用的技术。要检查的另一件事是VM配置本身是否允许硬件加速(这通常在创建配置时定义)。

所以,采取步骤:

  1. 检查VM配置
  2. 更新JDK
  3. 更新图形驱动程序(通常由VM软件提供商提供)
  4. 更新DirectX
  5. 完成此操作后,您应该能够追踪问题,或者至少缩小影响性能的因素

相关问题