[英]How can I make Java3D start faster?
我的应用程序需要几秒钟才能显示第一个带有Canvas3D
窗口。 我对它进行了分析,发现瓶颈在于SimpleUniverse.getPreferredConfiguration()
; 第一个调用需要三到四秒,并且必须在渲染场景之前调用它。
我正在使用Direct3D渲染器( -Dj3d.rend=d3d
),因为OpenGL渲染器在我的显卡上崩溃了。 我有一个运行单个显示器的集成ATI卡。
的原因减速是GraphicsDevice.getConfigurations()
它用于通过SimpleUniverse.getPreferredConfiguration()
是在某些系统很慢。 请参阅此java.net论坛主题 ,该主题链接到此Java3D错误 ,该错误又链接到此Sun错误 :
问题是
::DescribePixelFormat
Win32调用很慢 - 最多需要60ms才能完成。 ...
通过建议的解决方法(elminats [sic]违规的win32调用),时间得到显着改善(比如0ms)。
提到的解决方法是将-Dsun.awt.nopixfmt=true
传递给JVM ,这使得底层本机代码不会调用DescribePixelFormat
。
这显然不是一个完美的解决方案:
...某些使用OpenGL和Java的应用程序可能无法正常工作。
但是因为我还在使用Direct3D,所以这不是问题。 这减少了启动时间3.2秒。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.