1 / 6
文档名称:

关于as3控制内存增长几个基础原则.doc

格式:doc   大小:34KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

关于as3控制内存增长几个基础原则.doc

上传人:85872037 2018/6/29 文件大小:34 KB

下载得到文件列表

关于as3控制内存增长几个基础原则.doc

相关文档

文档介绍

文档介绍:Event listeners: 
事件侦听的响应函数所在对象默认会被添加引用计数,有以下两种方式可以避免事件侦听引起的内存泄漏
采用弱引用添加事件侦听(( , , false, 0, true );) ,采用这种方式侦听响应函数对象不会被添加引用计数,若外部引用都被清空则对象将被垃圾回收,不再响应事件。
若采用强引用,则要要在不需要的时候手动调用removeEventListeneror 移除事件侦听器。
Clean up references: 如果 objA 有成员ob引用了 objB, 则直接设置 objB=null 将不会导致objB实例被垃圾回收,=null之后才会将其回收。也就是说,一个对象的所有引用都被清理之后,其才会被垃圾回收(在AS中只要一个对象没有引用能追溯至根节点,即stage、static成员等,则会被垃圾回收)。不注意清理引用是引起内存泄漏的一个常见问题。
a:obj = new obj();
b:obj = new obj();
= b;
= a;
=null;
=null;
a =null;
b =null;
class Loader
{
load(onFin:Function):void
{
thisptr = this;
(function (){
onFin(thisptr);
});
}
}
{
lder = new Loader();
(
function (l:Loader):void
{
;
}
);
}
class A
{
spr:Sprite;
function A()
{
spr = new Sprite();
(xxx, onXXX, fal, 0, true);
}
function onXXX(evt:Event):void
{
}
function dispose():void
{
(xxx, onXXX);
spr =null;
}
}
{
var a:A = new A();
();
a = null;
}
{
var lder:A = new A();
(xx);
}
Reuse objects: 对于需要频繁创建销毁的一些较复杂的对象,可以创建object pool来管理,当对象不需要使用时,可以用object pool回收对象,同时在对象上定义reset()函数初始化对象,需要使用对象时则从object pool取出对象并调用reset即可。
Immediately kill objects: 一些对象, 比如XML、()、()直接释放其持有的内存。
Know the language: 需要进一步了