首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解Actionscript垃圾回收

了解Actionscript垃圾回收
EN

Stack Overflow用户
提问于 2010-03-04 22:22:35
回答 1查看 1.2K关注 0票数 1

为了尝试了解actionscript的垃圾收集器,我设置了一个示例项目,该项目在舞台上循环补间像素弯曲器参数的值。

我首先关心的是在启动时使用的内存量(~26MB)。虽然我倾向于相信我通过尽可能删除事件侦听器和清空垃圾收集的无用对象来谨慎对待内存,但我也认为我没有完全掌握它在哪里、为什么以及何时工作。

总系统内存的跟踪显示,从大约26MB开始稳步上升,到大约一分钟后(大约一分钟)后达到大约28MB。突然,它降到了25MB,然后又继续上升。这似乎循环了一遍又一遍。

这里有一些问题浮现在脑海中: 1.垃圾收集器是否有一般的时间延迟? 2.它是否在分配了一定量的内存后激活? 3.是否可以在不依赖垃圾收集器的情况下立即显式删除对象? 4.运行闪存时,内存使用的可接受范围是多少?

附件是我的代码。

代码语言:javascript
复制
import fl.transitions.*;
import fl.transitions.easing.*;

var shader:Shader;
var shaderFilter:ShaderFilter;
var motionTween:Tween;
var filterParameter:Number = 0.0;
var loader:URLLoader = new URLLoader();
var phase:Boolean = false;

loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, dataLoaded);
loader.load(new URLRequest("myBoringFilter.pbj"));

function dataLoaded(e:Event):void
 {
 loader.removeEventListener(Event.COMPLETE, dataLoaded);
 shader = new Shader(e.target.data);
 shaderFilter = new ShaderFilter(shader);
 flower.filters = [shaderFilter];

 tweenLoop(null);
 }

function tweenLoop(e:TweenEvent):void
 {
 if (motionTween != null)
  {
  motionTween.removeEventListener(TweenEvent.MOTION_CHANGE, updateFilter);
  motionTween.removeEventListener(TweenEvent.MOTION_FINISH, tweenLoop);
  motionTween = null;
  }

 phase = !phase;

 if (phase == true)
  {motionTween = new Tween(this, "filterParameter", Regular.easeOut, filterParameter, 100.0, 2.0, true);}
  else
  {motionTween = new Tween(this, "filterParameter", Regular.easeOut, filterParameter, -100.0, 1.0, true);}

 motionTween.addEventListener(TweenEvent.MOTION_CHANGE, updateFilter);
 motionTween.addEventListener(TweenEvent.MOTION_FINISH, tweenLoop);
 }

function updateFilter(e:TweenEvent):void
 {
 shader.data.amount.value = [filterParameter];
 flower.filters = [shaderFilter];

 //Update Memory
 trace("System Total Memory: " + System.totalMemory);
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-03-04 23:46:30

这通常是这个问题最常见的资源:

http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2379944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档