Причина замедления в том, что GraphicsDevice.getConfigurations()
, который используется SimpleUniverse.getPreferredConfiguration()
, очень медленный в некоторых системах. См. эту ветку форума java.net , которая ссылается на эту ошибку Java3D , которая, в свою очередь, ссылается на эту ошибку Sun :
Проблема в том, что ::DescribePixelFormat
Win32 вызов медленный - занимает
до 60 мс для завершения.
...
С предложенным обходным путем (который elminats [sic] вызывает вызывающий win32)
время значительно улучшается (до 0 мс).
Упомянутое обходное решение - передать -Dsun.awt.nopixfmt=true
в JVM , что делает основной нативный код не вызывающим DescribePixelFormat
.
Это, видимо, не идеальное решение:
... некоторые
приложения, использующие OpenGL с Java, могут работать неправильно.
Но так как я все равно использовал Direct3D, это не проблема. Это сократило время запуска на 3,2 секунды.