Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash ActionScript3档案器&;内存分析工具_Flash_Memory_Actionscript_Profiler_Analysis - Fatal编程技术网

Flash ActionScript3档案器&;内存分析工具

Flash ActionScript3档案器&;内存分析工具,flash,memory,actionscript,profiler,analysis,Flash,Memory,Actionscript,Profiler,Analysis,我正在使用AdobeFlashCS4,我想知道是否有任何档案器或内存分析工具可供使用?(动作脚本3)。我知道Flex有可用的工具,但是否有适合Flash CS 4的工具?谢谢。我肯定有一个程序在那里,仍然在寻找我自己,但我: 大多数AS3初学者编写了一些程序,然后听说了内存泄漏。因此,首先我将介绍检测和修复现有代码泄漏的方法,然后讨论开始编程时要采取的预防措施 那么,您如何知道您的程序是否存在问题?最清楚的方法是判断它是否崩溃,但这是非常不切实际的。幸运的是,在AS3中,我们有一个名为Syste

我正在使用AdobeFlashCS4,我想知道是否有任何档案器或内存分析工具可供使用?(动作脚本3)。我知道Flex有可用的工具,但是否有适合Flash CS 4的工具?谢谢。

我肯定有一个程序在那里,仍然在寻找我自己,但我:

大多数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项目来说,它会导致内存累积,然后下降。这被称为锯齿图,这是完全正常的。

随着Flash Player 10.1预览版的发布,Adobe推出了一个用于内存监控的组件:

这是actionscript 3内存分析和分析的好工具

这看起来很有用,但我在测试该工具(the.fla)时注意到,内存不断上升,然后又下降,并不断重复..知道为什么吗?我怀疑这是一种正常的行为:内存上升,车库收集器清理,内存下降,重复。它有内存监视器,它对查找内存泄漏非常有帮助。