package com.exanimo.memory { import flash.utils.describeType; import flash.utils.Dictionary; /** * * .. * * @langversion ActionScript 3 * @playerversion Flash 9.0.0 * * @author Matthew Tretter * @since 2008.10.23 * */ public class MemoryMonitor { public static var _dict:Dictionary = new Dictionary(true); private static var _count:int = 0; /** * * * */ public static function watch(obj:Object):void { var uid:String = MemoryMonitor._count.toString(16); MemoryMonitor._dict[obj] = uid; MemoryMonitor._count++; } public static function getUID(obj:Object):String { return MemoryMonitor._dict[obj]; } /** * * */ public static function unwatch(obj:Object):void { delete MemoryMonitor._dict[obj]; } public static function getData():Array { import flash.system.System; System.gc(); var data:Array = []; var obj:Object; for (obj in MemoryMonitor._dict) { var uid:String = MemoryMonitor._dict[obj]; data.push({ uid: uid, type: describeType(obj).@name }); } return data; } } }