我正在使用Adobe Flash CS4,我想知道有没有适用于它的分析器或内存分析工具?(actionscript 3)。我知道Flex有可用的工具,但是有没有Flash CS4的替代工具呢?谢谢。
发布于 2009-12-10 00:20:30
我肯定有一个程序,还在寻找我自己,但我
大多数AS3初学者都编写了一些程序,然后听说了内存泄漏。因此,首先我将介绍检测和修复预先存在的代码中的泄漏的方法,然后讨论开始编程时要采取的预防措施。
那么你怎么知道你的程序是否有问题呢?最清晰的判断方法是它是否崩溃,但这是非常不切实际的。幸运的是,在AS3中,我们有一个名为System的对象,它的属性告诉我们运行Flash的条件。例如,System.totalMemory是运行您的程序的Flash Player实例所使用的计算机内存量。不同的平台以不同的方式确定System.totalMemory的值,所以我建议您在测量它的值时一次只运行一个Flash player实例。
package {
import flash.utils.Timer;
import flash.system.System;
public class SpitMem {
var t:Timer = new Timer(0);
var n:int, lastN:int;
public function SpitMem():void {
t.addEventListener("timer", spit2, false, 0, true);
}
private function spit1():void {
trace(System.totalMemory);
}
private function spit2():void {
n = System.totalMemory;
if (n != lastN)
trace(n);
lastN = n;
}
}
}如果创建上述SpitMem类的实例并运行代码,则可以在“输出”窗口中观察到程序内存使用量的波动。然而,这是大量的信息,而且在这种格式下,它不能让您清楚地了解您的程序是如何使用其内存的。
(请注意上面spit1()和spit2()之间的区别。如果System.totalMemory没有改变,spit2()就不会输出它。稍后,我将展示类似的逻辑如何将我们的数据变成更有用的东西。)
如果你在一个电子表格程序中制作数据图表,你会注意到它似乎总是在增加。这并不意味着你有一个内存泄漏。闪存的内置内存管理允许某些类型的数据处于闲置状态,直到有合适的时间将其清除。这就是所谓的垃圾回收,对于大多数Flash项目来说,它会导致内存积累,然后下降。这被称为锯齿图,这是完全正常的。
发布于 2011-06-16 21:46:06
这是一个分析ActionScript3内存和分析http://demonsterdebugger.com/的好工具
发布于 2009-12-16 02:22:19
随着Flash player10.1预览版的发布,Adobe推出了一个为您进行内存监控的组件:Memory Monitoring Component
https://stackoverflow.com/questions/1872687
复制相似问题