flash - ActionScript 3 Profiler 和内存分析工具

标签 flash memory actionscript profiler analysis

我正在使用 Adob​​e Flash CS 4,想知道是否有可用的分析器或内存分析工具? ( ActionScript 3)。我知道有适用于 Flex 的工具,但有适用于 Flash CS 4 的工具吗?谢谢。

最佳答案

我确定那里有一个程序,仍在寻找我自己,但我 found this on a forum :

大多数 AS3 初学者都编写了一些程序,然后听说了内存泄漏。因此,首先我将介绍检测和修复预先存在代码中的泄漏的方法,然后讨论在开始编程时要采取的预防措施。

那么你怎么知道你的程序有问题呢?最清楚的判断方法是它是否崩溃,但这是非常不切实际的。幸运的是,在 AS3 中,我们有一个名为 System 的对象,它的属性告诉我们 Flash 运行的条件。例如,System.totalMemory 是运行您的程序的 Flash Player 实例使用的计算机内存量。不同平台对 System.totalMemory 的值有不同的决定方式,所以我建议你在衡量它的值时一次只运行一个 Flash 播放器实例。

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项目,它会导致你的内存堆积,然后下降。这称为锯齿图,这是完全正常的。

关于flash - ActionScript 3 Profiler 和内存分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1872687/

相关文章:

javascript - 在Flash中使用javascript导航到另一个场景

android - 顺畅的飞行运动,如飞扬的小鸟或喷气背包,通过重力和加速度享受欢乐之旅

c - 如何使用c编程将值存储到某个特定的内存地址

actionscript-3 - 我们可以在flex中添加艺术字样式吗

actionscript-3 - 如何在 ActionScript 中拆分音频文件

Android 硬件和 Adob​​e AIR 续

javascript - Videojs 使 SWF 后备响应

jquery - 如何从HTML页面正确删除Flash对象

c++ - "new int[5]"和 "malloc(5 * sizeof(int))"之间的 C++ 有什么区别?

c - 使用 C 从文本文件中打印出数组