JVM 8 更新后 Java 声音明显变慢
我的应用程序在启动时加载一堆音频剪辑。它用于加载位于同一文件夹中的文件。我可以看到这个函数基本上是一个获取对象的包装器。java.applet.Applet.newAudioClip(URL audioFileURL)
JavaSoundAudioClip
直到昨天,我用JDK 7编译了JAR,并使用JRE版本7更新45启动了它。然后我更新到版本8更新31。
现在,每个音频的加载时间比以前长十倍(每个音频0.2秒,现在在2到3秒之间)
相同的行为发生在不同的硬件配置上。操作系统是64位Windows 7,Java 7和8运行时环境都是32位。
在调试中深入挖掘,我发现速度最慢的方法是, ,AudioSystem.getAudioInputStream
AudioSystem.isLineSupported
AudioSystem.getLine
不应该涉及音频格式:我尝试了OGG和WAV,结果相同。
两个 JVM 的设置相同
编辑:即使我无法在临时制作的小程序中重现问题。Java 8确实更慢,但只有10%的系数。我的应用程序和我使用的库必须有一些与音频系统和/或其流冲突的东西。一旦我发现,我会立即更新。