Почему мое приложение Java работает так медленно в полноэкранном режиме? (и хорошо, когда в окно)
Я работаю над Java-программой, которая предназначена для работы в полноэкранном режиме. Он использует множество настроенных компонентов Swing и нарисованных Java2D компонентов, которые необходимо обновлять и перекрашивать несколько раз в секунду. И это работало относительно хорошо на моем слабом рабочем ПК.
Но потом я попробовал это дома на своем гораздо более мощном ПК. И это бежало заметно медленнее. Инициирование события, которое должно было мгновенно обновить около 20 различных элементов экрана, вместо этого вызвало эффект, при котором каждый элемент, казалось, занимал по меньшей мере четверть секунды каждый для перерисовки. Таким образом, вместо мгновенных изменений потребовалось 5 секунд для завершения каждого изменения экрана.
Я подумал, что, может быть, я пытался перекрасить слишком часто или неправильно. Но немного поэкспериментировав с другими идеями, я догадался, что приложение запускается в оконном режиме, а не в полноэкранном режиме. И с этим одним изменением все стало работать очень быстро и гладко.
Итак, я полагаю, что здесь действительно есть две проблемы: почему полноэкранный режим вызывает эту проблему? И почему это только вызывает эту проблему на моем более быстром компьютере? Я подозреваю, что есть ошибка, связанная с ОС. Мой медленный рабочий компьютер - Windows XP, а домашний - Windows 7. Я видел в других потоках, что Aero на Win7 может вызвать проблемы со скоростью Java, поэтому я попытался отключить его. Это привело к небольшому улучшению скорости, но все равно было не так гладко, как при работе в оконном режиме. Кто-нибудь еще имел проблемы с производительностью запуска полноэкранных приложений Java на Win7? И если так, есть ли обход?