My Application загружает кучу аудиоклипов при запуске. Он использует java.applet.Applet.newAudioClip(URL audioFileURL)
для загрузки файлов, находящихся в одной папке. Я мог видеть, что эта функция в основном является оболочкой для получения объектов JavaSoundAudioClip
До вчерашнего дня я скомпилировал JAR с JDK 7 и запустил его с обновлением версии JRE версии 7. Затем я обновил обновление до версии 8 31.
Теперь загрузка каждого аудио занимает в десять раз больше, чем раньше (было 0,2 секунды каждый, теперь он составляет от 2 до 3 секунд)
Такое же поведение произошло в разных аппаратных конфигурациях. ОС - 64-битная Windows 7, а среда выполнения Java 7 и 8 - 32-разрядная.
Копаясь глубже в отладке, я обнаружил, что наиболее медленными методами являются AudioSystem.getAudioInputStream
, AudioSystem.isLineSupported
, AudioSystem.getLine
Формат аудио не должен быть задействован: я пробовал как OGG, так и WAV с теми же результатами.
Настройки для обоих JVM одинаковы
EDIT: даже я не мог воспроизвести проблему в небольшой программе, сделанной ad-hoc. Java 8 работает медленнее, но только с коэффициентом 10%. Должно быть что-то в особенности с моим приложением и библиотеками, которые я использую, которые противоречат аудиосистеме и/или ее потокам. Я обновлю, как только узнаю.