2009-06-24 2 views
2

Мы все знаем, как веб-браузеры (такие как Firefox) наверняка заполняют потребление памяти, потому что мы постоянно выполняем код JavaScript (с веб-сайтов), который подвержен утечке памяти.Adobe AIR, утечки памяти

Я обсуждаю разработку приложения для настольных компьютеров, и, учитывая мой опыт работы с Javascript/Css/HTML, я думал, что дам AIR попробовать, таким образом, мне не нужно использовать Java (например) и иметь дело с изучая все свои качели.

Проблема в том, что я беспокоюсь о утечке памяти в AIR, поскольку AIR - это просто веб-браузер с уровнем API для взаимодействия с операционной системой.

Возможно ли беспокоиться о утечке памяти в AIR? Что мне с этим делать?

+0

Worry? Да. Что-нибудь о чем? Неа. –

+0

добавил вопрос :) –

ответ

9

Меня зовут Роб Кристенсен, я - менеджер по продукции Adobe AIR. Во-первых, позвольте мне сказать, что довольно просто создать настольное приложение, независимо от базовой технологии, которая потребляет большой объем памяти и/или не освобождает память.

В следующем выпуске AIR мы рассмотрим возможность предоставления дополнительных возможностей для среды выполнения AIR, чтобы упростить идентификацию утечек памяти для приложений на основе JavaScript. Разработчики, которые строят приложения Flash или Flex, уже могут воспользоваться профилировщиком памяти, включенным в Flex Builder, для отслеживания этого. Мы надеемся сделать что-то подобное для разработчиков JavaScript.

По моему опыту общения с разработчиками, утечки памяти часто возникают, когда объекты в памяти никогда не очищаются. Например, представьте себе клиента Twitter, в котором перечислены твиты пользователей, основанные на ключевом слове поиска. Сверхурочная работа показывает больше результатов, и список становится длиннее. Если нет предела максимальному количеству твитов, видимых, память, конечно, будет расти со временем. Вместо этого приложение должно наложить разумное ограничение на количество элементов, отображаемых в этом списке.

Есть несколько разговоров, в которых описываются лучшие практики обработки памяти в AIR. Хотя примеры в этой статье в основном написаны в ActionScript, те же понятия применимы и к JavaScript.

приложение AIR-Performance Tuning http://www.adobe.com/devnet/air/articles/air_performance.html

Если есть утечка памяти в режиме исполнения, прыгает на них так быстро, как мы можем. Мы рекомендуем разработчикам узнать о таких проблемах, отправив их обратно в нашу команду, используя следующую форму обратной связи (www.adobe.com/go/wish).

Если вы используете фреймворк Ajax, вы можете захотеть выяснить, существуют ли известные проблемы с утечками памяти для этой конкретной структуры.

Итак, в общем, да, вы должны всегда беспокоиться о памяти при создании настольного приложения - будь то AIR или C++. По мере разработки приложения вы должны следить за использованием памяти вашего приложения, чтобы вы могли выявить любые проблемы раньше, чем позже.Один из способов сделать это - запустить тесты на долголетие - держите приложение открытым в течение ночи, чтобы узнать, ползет ли память.

В общем, инструменты, доступные для браузеров, также очень ограничены. Я ожидаю, что это скоро изменится, поскольку разработчики браузеров также начнут предоставлять больше крючков в свои браузеры для идентификации использования памяти. Надеюсь это поможет.

Спасибо!

Роб

менеджер по продукции Adobe AIR

1

Несомненно. Я видел, как приложения AIR на Linux сглатывают гигабайты памяти с течением времени. Это реальный блокиратор для меня и не позволяет мне использовать их.

При этом другие люди на других платформах не имеют проблемы с этим. В конечном счете вам нужно решить, что будет использовать большинство вашего рынка и как они повлияют на какие-либо проблемы в AIR (или другом).

Если это не так важно (но это все еще проблема), отправьте сообщения об ошибках и надейтесь, что Adobe исправит ситуацию.

+0

На самом деле у меня сейчас проблемы с Mac OSX. Единственной платформой с меньшими проблемами является Windows. –