Приложения Adobe AIR замедляют ответ после времени простоя

Я потратил сотни нашей разработки Adobe AIR Application с Flex 4.0, и теперь я думал, что должен был закончить, но после разрешения выполнению приложения в течение больше, чем нескольких часов скорость отклика UI начинает недоставать...

Что я делаю: Мое приложение использует пользовательского хромиса путем установки backgroundImages с прозрачностью к BorderContainers в модулях Окна. Я открываю много различных всплывающих окон, которые все основаны на Классе Окна (не TitleWindow!) и созданный и закрытый динамично в ActionScript. При помощи Профилировщика Flex я, конечно, знаю, что сборщик "мусора" уничтожает все выделенные ресурсы правильно, и потребление памяти не повышается со временем работы приложения. Далее профилировщик показывает мне, что ни один из моих методов occupate обширное процессорное время, таким образом, это также должно быть в порядке.

Что действительно интересно: Если я непрерывно взаимодействую с приложением (нажмите кнопки, запишите текст...), ничего не происходит, и все прекрасно, НО если я не взаимодействую с приложением в течение нескольких минут и затем возвращаюсь - скорость отклика UI действительно плоха!

Действительно плохие средства, что, если я ввожу некоторый текст в TextInput-управление, я могу наблюдать каждую букву, записанную с задержкой по крайней мере 1 секунды!

Кто-либо испытал аналогичную ситуацию или кого-то, кто знает, какова проблема могла быть? Мое предложение, что после некоторого действия время выполнения Flash player ограничивает использование CPU приложения AIR и не отдает полную мощность, когда пользователь возвращается.

Я протестировал приложение с Flex 4.0, Flex 4.1, AIR 1.5, AIR 2.0 с Flash Player 9 и также Flash Player 10, работающим на Windows XP и Windows 7...

5
задан Daniel Lang 4 May 2010 в 19:11
поделиться

1 ответ

Я наконец-то нашел решение!

Новые spark-компоненты, представленные во Flex 4, добавили свойство под названием "backgroundFramerate" к классу WindowedApplication. По умолчанию это свойство установлено в 1, что означает, что AIR автоматически снижает частоту кадров, когда основное (!) окно приложения становится неактивным. К сожалению, эта частота кадров используется для всего приложения, включая все другие окна-экземпляры, которые могут быть на переднем плане и активны!

После отключения автоматического замедления частоты кадров путем установки свойства backgroundFramerate в -1 все проблемы исчезли!

Хотя я знаю, что установка новых объектов, производных от окон, для отображения всплывающих окон, я считаю, что это ошибка во Flex 4, которая до сих пор не исправлена.

5
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: