Я потратил сотни наших усилий на разработку приложения Adobe AIR с Flex 4.0, и теперь я подумал, что должен был закончить, но после того, как приложение продолжало работать более нескольких часов, отзывчивость пользовательского интерфейса начинает отсутствовать…
Что я делаю:
Мое приложение использует пользовательские цвета, устанавливая backgroundImages с прозрачностью для BorderContainers в Window-модулях. Я открываю много разных всплывающих окон, все они основаны на Window-Class (не на TitleWindow!), Динамически создаются и закрываются в ActionScript. Используя Flex Profiler, я, конечно, знаю, что сборщик мусора корректно уничтожает все выделенные ресурсы, и потребление памяти не увеличивается с продолжительностью работы приложения. Далее профилировщик показывает мне, что ни один из моих методов не занимает много процессорного времени, так что это тоже должно быть хорошо.
Что действительно интересно:
Если я постоянно взаимодействую с приложением (нажимает кнопки, пишет текст, ...), ничего не происходит, и все в порядке, НО, если я не взаимодействую с приложением в течение нескольких минут, а затем возвращаюсь - отзывчивость интерфейса действительно плохая!
Действительно плохо означает, что, если я наберу какой-нибудь текст в TextInput-Control, я могу наблюдать за написанием каждого отдельного письма с задержкой не менее 1 секунды!
Кто-нибудь сталкивался с подобной ситуацией, или кто-то, кто знает, в чем может быть проблема?
Мое предложение заключается в том, что после некоторой активности время выполнения flash-player ограничивает использование процессором приложения AIR и не возвращает полную мощность, когда пользователь возвращается.
Я протестировал приложение с Flex 4.0, Flex 4.1, AIR 1.5, AIR 2.0 с Flash Player 9, а также с Flash Player 10, работающим в Windows XP и Windows 7 ...