1、as3中不管是普通的object,还是displayobejct都一视同仁
2、fp9中的gc采用了两种方式进行内存清理
a、reference count引用计数,顾名思义,根据对象被引用的次数,如果为0,gc清除之
b、mark sweeping标记扫荡,从root开始往下扫荡,标记所有和root有关联的object,清除没有关联的,方法虽然精确,但是很耗资源,所以fp9只是偶尔来一次扫荡
3、你永远无法知道gc什么时候会调用,你能做的只是等待,等待gc在某一时刻运行起来。
4、as3中delete只能用来删除动态属性,不能删除变量,可以将变量置为null来达到删除对象的目的。
5、将对象置为null,gc是否就会来清除该对象的内存?不一定!!!如果在别处有对它或者它的属性或者它的方法的引用,gc就不会清除该对象!
6、as3中在addlistener时,可以将weakreference设置为true,这样listener这个函数对象的引用将不计入引用记数,标记扫荡也不理它(it is not counted in reference counting, and it is not followed for mark sweeping)。Grant Skinner甚至建议永远将该值设定为true!
7、as3的System类提供了totolmemory工具来查看当前fp所占有的内存,great!
8、as3的System类乍一看居然提供了gc方法,强制gc运行,但是仅仅适用于FP debugger version和AIR程序。如果要强制运行gc,可以hack。可以调用两个localconnection,connect两个同名方法,这会产生一个错误,导致gc强制运行一次标记扫荡!
try {
new LocalConnection()onnect('foo');
new LocalConnection()onnect('foo');
} catch (e:*) {}
参考资料:
[1]gskinner--AS3: Resource Management
[2]AS3 Garbage Collection
as学习笔记(十八)--as3中的资源管理与GC
发表于2008年7月6日 11:01:00 更新于2008年7月6日 11:04:00
评论
sshong2008年7月30日 12:05 回复
估计是visio把,不是我画的,哈哈
quark2008年7月30日 11:25
这个图是用什么软件画的啊?很漂亮的样子~
quark2008年7月30日 11:25
这个图是用什么软件画的啊?很漂亮的样子~
添加评论
分类
琐碎文字 As3&Flex RIA UG English CodingArt C++ PHP Webserver E音乐盒 Unity3d C# JS&Html5 Tools mobile golang 最近发表
- golang学习之函数/方法/接口(2022年1月6日 17:50:24)
- golang学习之零值(2022年1月6日 16:38:10)
- hello, 2018(2018年1月15日 22:47:25)
- 字体类型名词解释(2015年1月18日 11:29:14)
- 获取mysql表注释以及列注释(2014年11月13日 15:56:32)
- php连接ms sql数据库的一些问题(2014年9月15日 20:32:14)
- virtualbox虚拟网络:NAT&bridge桥接网络(2014年8月25日 22:51:35)
- php图片加水印(2014年8月15日 22:50:42)
- windows查看端口占用情况(2014年7月31日 21:19:30)
- android安卓activity生命周期(2014年7月12日 10:31:47)
最近回复