flex profile

 

今天使用profile来检测了下系统的性能,发现好多低级的问题。

 

查看以下代码:

 

private var dg:FWDataGrid=new FWDataGrid();

//删除此项被选中的列,并保存此列信息
		private function selectHandler(e:ContextMenuEvent):void
		{
			this.dg=FWDataGrid(listData.owner);
			this.col=dg.columns[listData.columnIndex];
			this.colIndex=listData.columnIndex;
			var cols:Array=dg.columns;
			cols.splice(listData.columnIndex, 1);
			dg.columns=cols;

			var menu:Menu=this.dg._menu;
			var menuData:ArrayCollection=this.dg._menuData;
			var obj:Object=new Object();
			obj.type='';
			obj.label=this.col.headerText;
			obj.col=this.col;
			obj.index=this.colIndex;
			menuData.addItem(obj);
			menu.dataProvider=menuData;
		}

 

以上代码是在datagrid作为headRenderer的,红色代码我之前写的觉得是没问题的,dg是作为对父datagrid的引用,来进行操作。在profile中终于发现这个低级错误,红色代码分明已经实例化了fwdatagrid,

导致profile时出现n个fwdatagrid实例。将红色代码去掉就没问题了。这种低级错误如果在写代码时写了,那在后续的测试中是没问题的,如果不通过profile估计是找不出来的,因此,profile还是有很大的价值的!!

你可能感兴趣的:(Flex)