Flash ActionScript3档案器&;内存分析工具
我正在使用AdobeFlashCS4,我想知道是否有任何档案器或内存分析工具可供使用?(动作脚本3)。我知道Flex有可用的工具,但是否有适合Flash CS 4的工具?谢谢。我肯定有一个程序在那里,仍然在寻找我自己,但我: 大多数AS3初学者编写了一些程序,然后听说了内存泄漏。因此,首先我将介绍检测和修复现有代码泄漏的方法,然后讨论开始编程时要采取的预防措施 那么,您如何知道您的程序是否存在问题?最清楚的方法是判断它是否崩溃,但这是非常不切实际的。幸运的是,在AS3中,我们有一个名为System的对象,其属性告诉我们Flash运行的条件。例如,System.totalMemory是运行程序的Flash Player实例正在使用的计算机内存量。不同的平台以不同的方式决定System.totalMemory的价值,因此我建议您在测量其价值时一次只运行一个Flash player实例Flash ActionScript3档案器&;内存分析工具,flash,memory,actionscript,profiler,analysis,Flash,Memory,Actionscript,Profiler,Analysis,我正在使用AdobeFlashCS4,我想知道是否有任何档案器或内存分析工具可供使用?(动作脚本3)。我知道Flex有可用的工具,但是否有适合Flash CS 4的工具?谢谢。我肯定有一个程序在那里,仍然在寻找我自己,但我: 大多数AS3初学者编写了一些程序,然后听说了内存泄漏。因此,首先我将介绍检测和修复现有代码泄漏的方法,然后讨论开始编程时要采取的预防措施 那么,您如何知道您的程序是否存在问题?最清楚的方法是判断它是否崩溃,但这是非常不切实际的。幸运的是,在AS3中,我们有一个名为Syste
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项目来说,它会导致内存累积,然后下降。这被称为锯齿图,这是完全正常的。随着Flash Player 10.1预览版的发布,Adobe推出了一个用于内存监控的组件:这是actionscript 3内存分析和分析的好工具这看起来很有用,但我在测试该工具(the.fla)时注意到,内存不断上升,然后又下降,并不断重复..知道为什么吗?我怀疑这是一种正常的行为:内存上升,车库收集器清理,内存下降,重复。它有内存监视器,它对查找内存泄漏非常有帮助。