关于垃圾回收,我来解释下为什么LocalConnection可以实现垃圾回收

本文解释了如何利用LocalConnection触发垃圾回收机制,并分析了其原理及潜在风险。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于垃圾回收,我来解释下为什么LocalConnection可以实现垃圾回收

我来解释下为什么LocalConnection可以实现垃圾回收.
其实LocalConnection与垃圾回收是没有直接关系的.
这个做法的原理在于垃圾回收的时间尽管不确定,但是,只要程序抛出错误,就会运行一次垃圾回收器.这里使用LocalConnection两次connect同一个连接,第二次将发生运行时错误(#1034,LocalConnection已经连接上).于是就报错了.垃圾回收器自动运行.
至于为什么网上流传的版本都是LocalConnection,我个人觉得,可能是因为这个LocalConnection在AS3的应用中相对比较少出现,而且跟其他代码相比,这个运行时错误不容易与其他代码发生冲突.

//

我的方法在我的程序上测试过,在相同的内存申请中,第一次调用gc()后,内存好像没有被释放,但第二次进行相同的内存申请却并没有增加内存的用量,CPU使用也相对稳定,可以这样说,系统的确是回收了垃圾,但没有直接把回收的内存交还给操作系统,所以在第二次申请中内存用量没有上升。
而在没有用gc()的情况下,每调用一次都会增加内存用量,CPU占有也随之提高。

//

LocalConnection以及System.totalMemory这样的东西。
都是封装在底层的实现中。

如果是windows有相应的C++底层实现,官方没有公开这个资料自然也没有说明,不然就不叫Hack
但是我觉得这是一个不稳定的做法,因为针对不同的系统,相对的底层实现也不同。

 

 

posted on 2009-11-05 09:55 jiahuafu 阅读(...) 评论(...) 编辑 收藏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

银狐游戏开发资源2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值