- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FLEX内存释放
FLEX内存释放
1.不知道什么时候才会出现的GC2.内存泄露个人认为,flashPlayer内存占用高很大程度上不是因为无法手动GC,而是因为设计上的失误(是天真地以为flash/flex像C#/java 那样有防止内存泄露的完善的机制)而导致无穷无尽的内存占用。如果你经常被这些问题困扰,那么你有幸了,因为你遇到了猫粮,遇到了能帮你把应用内存占用降 下来的文章。?测试环境的建立
为了测试环境的纯净,在数据输出方面我只使用了Trace。
下面是MemoryMonitor的代码:(可怜徐灿的代码被我整容了...大概只保留了定时器还有CallBackFunction)
这个东西主要用于每隔一秒就检测一次内存,并且执行一次callBackFunction。
复制内容到剪贴板代码:
?xml version=1.0 encoding=UTF-8?
mx:Canvas xmlns:mx= HYPERLINK /2006/mxml /2006/mxml
creationComplete=start()
mx:Script
![CDATA[
import flash.utils.getTimer;
private var timer:Timer;
public var interval:int = 1000;
public var callbackFunction:Function = null;
private function timerHandler(event:TimerEvent):void
? ? {
? ?? ???trace(Time:+getTimer()+cur:+System.totalMemory)
? ?? ???if (callbackFunction != null)
? ?? ?? ?? ?callbackFunction();
? ? }
? ? public function start():void
? ? {
? ?? ???timer = new Timer(interval);
? ?? ???timer.addEventListener(timer, timerHandler);
? ?? ???timer.start();
? ? }
? ? public function stop():void
? ? {
? ?? ???timer.stop();
? ?? ???timer.removeEventListener(timer, timerHandler);
? ?? ???timer = null;
? ? }
]]
/mx:Script
/mx:Canvas
主程序代码这个就是上面提到的两贴代码的宿主了。我们只需要更改enterFrameHandler这个函数就能对数据进行测试。徐灿的原版代码将在最后奉上.....复制内容到剪贴板代码:?xml version=1.0 encoding=UTF-8? mx:Application xmlns:mx=/2006/mxml layout=absolute ? ? xmlns:local=* ? ? mx:Script ? ?? ???![CDATA[ ? ?? ?? ?? ?import mx.controls.VideoDisplay; ? ?? ?? ?? ?private function enterFrameHandler():void ? ?? ?? ?? ?{ ? ?? ?? ?? ?? ? //TODO:测试内存占用的代码写在这里? ?? ???}? ?? ?? ?? ?? ?? ???]] ? ? /mx:Script local:MemoryMonitor callbackFunction=enterFrameHandler / ??mx:ViewStack id=abc / /mx:Application?
?
新建Object+内存回收复制内容到剪贴板代码:private function enterFrameHandler():void{var o:Object = new Object();MyGC.GC();}
?
?
内存回收+设置为null的flash内存占用复制内容到剪贴板代码:private function enterFrameHandler():void{var o:Object = new Object();o = null;MyGC.GC();}
?
加载外部文件,不关闭,内存回收private function enterFrameHandler():void{var flvplay:VideoDis
文档评论(0)