4

在对我的类进行单元分析时,我注意到 String 类无休止地累积(在我的大型应用程序中占用了 90% 以上的内存)。幸运的是,这只是在Flash Builder 4.6的Profiler模式下运行时。在调试或部署(作为 AIR)中,使用嵌入式屏幕内存分析器(Mr Doobs Stats)按预期降低内存使用量。

为了验证我制作了一个测试应用程序,它只是一个持续加载文本文件的 URLLoader。当使用 URLLoaderDataFormat.String 在 Profiler 模式下运行时,String 数据永远不会被 GC 处理并持续增长,而使用 URLLoaderDataFormat.BINARY 数据几乎立即被 GC 处理并保持水平。

我不愿称其为错误,因为它可能是 Profiler 工作方式的必要部分……但也许这对于 Profiler 来说是不正常的?这是我的 StackOverflow 查询的本质。

无论如何,这对我来说已经浪费了几个工作日,所以如果你在谷歌上搜索,想知道为什么 String 类会像疯了一样增长,而从来没有让 GC 考虑在 Profilier 之外测量你的应用程序内存使用情况以进行验证。就我而言,我被误导以为我在使用 Master Strings 时遇到了一些问题——尽管了解 Master Strings 及其对内存的影响(请参阅:)不要像我一样被误导。

4

0 回答 0