Меня зовут Роб Кристенсен, и я являюсь менеджером по продукту в Adobe AIR. Во-первых, позвольте мне сказать, что довольно легко создать настольное приложение, независимо от базовой технологии, которое потребляет большой объем памяти и / или не освобождает память.
В следующем выпуске AIR мы рассмотрим предоставление некоторых дополнительных возможностей среде выполнения AIR, чтобы упростить выявление утечек памяти для приложений на основе JavaScript. Разработчики, создающие приложения на базе Flash или Flex, уже могут воспользоваться профилировщиком памяти, включенным в Flex Builder, чтобы отследить это. Мы надеемся сделать нечто подобное и для разработчиков JavaScript.
По моему опыту общения с разработчиками, утечки памяти часто происходят, когда объекты в памяти никогда не очищаются. Например, представьте клиент Twitter, в котором перечислены твиты пользователей, основанные на поисковом слове. С течением времени появляется больше результатов, и список становится длиннее. Если максимальное количество видимых твитов не ограничено, память, конечно, со временем будет увеличиваться. Вместо этого приложение должно наложить разумное ограничение на количество элементов, отображаемых в этом списке.
Существуют некоторые доклады, в которых описываются лучшие практики обработки памяти в AIR. Хотя примеры в этой статье в основном написаны на ActionScript, те же понятия применимы и к JavaScript.
Настройка производительности приложений AIR
http://www.adobe.com/devnet/air/articles/air_performance.html
Если во время выполнения возникают утечки памяти, мы прыгаем на них как можно быстрее. Мы призываем разработчиков знать о таких проблемах, отправляя их обратно в нашу команду, используя следующую форму обратной связи (www.adobe.com/go/wish).
Если вы используете инфраструктуру Ajax, вы можете посмотреть, есть ли известные проблемы с утечками памяти для этой конкретной платформы.
Итак, подводя итог, да, вы всегда должны беспокоиться о памяти при создании настольного приложения - будь то с AIR или C ++. При разработке приложения вы должны отслеживать использование памяти приложением, чтобы вы могли выявить любые проблемы раньше, чем позже. Один из способов сделать это - запустить тесты на долговечность - оставить приложение открытым на ночь, чтобы проверить, не увеличивается ли объем памяти.
В целом, инструменты, доступные для браузеров, также очень ограничены. Я ожидаю, что это скоро изменится, поскольку поставщики браузеров также начнут предоставлять больше хуков в свои браузеры для определения использования памяти. Надеюсь это поможет.
Спасибо!
-Rob
Менеджер по продукту, Adobe AIR