在对我的类进行单元分析时,我注意到String类无休止地累积(在我的大型应用程序中占用了超过90%的内存)。幸运的是,在Flash Builder 4.6的 Profiler 模式下运行时,这只是 。在调试或部署(作为AIR)中,使用嵌入式屏幕内存配置文件(Mr Doobs Stats)按预期关闭内存使用率。
要验证我制作的测试应用只是一个URLLoader,不断加载文本文件。当使用URLLoaderDataFormat.String在Profilier模式下运行时,String数据永远不会GC并且不断增长,而使用URLLoaderDataFormat.BINARY,数据几乎立即GC并保持水平。
我毫不犹豫地称这是一个错误,因为可能它是Profilier工作方式的必要部分......但是对于Profiler来说这可能是不正常的?这是我的StackOverflow查询的本质。
无论如何,这给我带来了几个工作日,所以如果你在谷歌上想知道为什么String类正在疯狂增长,并且从未让GC考虑在Profilier之外测量你的应用程序内存使用情况来验证。在我的情况下,我误以为我遇到了Master Strings的一些问题 - 虽然很好理解Master Strings及其对记忆的影响(see:)不会像我一样误导。