Потребление памяти вложенными приложениями flex с RSL, использующими SWFLoader? - PullRequest
1 голос
/ 13 марта 2009

в эти дни я много читаю относительно RSL. Одним из недостатков является то, что RSL должны быть загружены в память, но могут сэкономить значительное время загрузки.

Теперь, что происходит в следующем сценарии:

У меня есть superFramework.swf и subapp.swf. subapp.swf отображается и загружается по запросу в superframework.swf с помощью SWFLoader. Однако оба SWF-файла имеют зависимости от файла common.swc, который будет скомпилирован как RSL.

Итак, зависимости выглядят так:

superframework.swf           ---RSL---> common.swc
   ---SWFLoader-->subapp.swf ---RSL---> common.swc

Теперь мои вопросы:

  • Загружен ли subapp.swf в отдельное пространство памяти?
  • Если да: означает ли это, что RSL common.swc загружается дважды в память?
  • Если нет: как насчет синглетов, таких как ModelLocator в common.swc. Доступен ли один и тот же экземпляр одновременно для subapp.swf и superframework.swf?

1 Ответ

3 голосов
/ 13 марта 2009

RSL не являются настоящими динамическими библиотеками. Они больше похожи на статическое связывание всей библиотеки во время выполнения.

  • Загружен ли subapp.swf в отдельное пространство памяти?

Да, вроде. Все SWF-файлы запускаются во Flash Player. В целях безопасности у них есть свои маленькие песочницы.

  • Если да: означает ли это, что RSL common.swc загружается дважды в память?

Да, каждое вызывающее приложение загружает одну копию данного RSL.

  • Если нет: как насчет синглетов, таких как ModelLocator в common.swc. Доступен ли один и тот же экземпляр одновременно для subapp.swf и superframework.swf?

Нет, у них будут разные экземпляры.

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

...