使用SWFLoader的RSL嵌套Flex应用程序的内存消耗?

时间:2009-03-13 16:22:50

标签: flex swfloader rsl

这些天我读了很多关于RSL的内容。一个缺点是RSL必须加载到内存中,但可以节省大量的加载时间。

现在在以下场景中会发生什么:

我有一个superFramework.swf和一个subapp.swf。使用SWFLoader在superframework.swf中按需显示和加载subapp.swf。但是,两个SWF都依赖于common.swc,它将被编译为RSL。

所以依赖性看起来像这样:

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

现在我的问题:

  • 是否将subapp.swf加载到一个单独的内存空间?
  • 如果是:这是否意味着将common.swc RSL加载到内存中两次?
  • 如果不是:像common.swc中的ModelLocator那样的单身人士怎么样?同一个实例是否同时可用于subapp.swf和superframework.swf?

1 个答案:

答案 0 :(得分:3)

RSL不是真正的动态库。它们更像是在运行时静态链接整个库。

  
      
  • 是否将subapp.swf加载到一个单独的内存空间?
  •   

是的,有点儿。所有SWF都在Flash Player中运行。出于安全考虑,他们有自己的小沙箱。

  
      
  • 如果是:这是否意味着将common.swc RSL加载到内存中两次?
  •   

是的,每个调用应用程序都会加载给定RSL的一个副本。

  
      
  • 如果不是:像common.swc中的ModelLocator那样的单身人士怎么样?同一个实例是否同时可用于subapp.swf和superframework.swf?
  •   

不,他们将有不同的实例。

RSL有助于减少可分发的大小。但这并不总是一个优势。我建议您在跳过之前浏览this页面。