加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 07:24:59 所属栏目:百科 来源:网络整理
导读:我正在使用Adobe Flash CS 4,并且想知道有没有可用的探查器或内存分析工具? (动作3).我知道Flex有可用的工具,但Flash CS 4是否适用?谢谢. 解决方法 我确定那里有一个程序,仍在寻找自己,但我 found this on a forum: 大多数AS3初学者已经编程了一些东西,然
我正在使用Adobe Flash CS 4,并且想知道有没有可用的探查器或内存分析工具? (动作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,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()之间的区别.如果没有改变,spit2()将不会输出System.totalMemory.稍后我将展示类似的逻辑如何将我们的数据变成更有用的东西.)

如果您在电子表格程序中制作数据图表,您会发现它似乎总是在增加.这并不意味着你有内存泄漏. Flash的内置内存管理允许某些类型的数据处于适当的位置,直到有适当的时间来摆脱它.这称为垃圾收集,对于大多数Flash项目,它会导致内存累积然后下降.这被称为锯齿图,这是完全正常的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读