Показать сообщение отдельно
Старый 16.11.2014, 23:29
zCHESNOKz вне форума Посмотреть профиль Отправить личное сообщение для zCHESNOKz Посетить домашнюю страницу zCHESNOKz Найти все сообщения от zCHESNOKz
  № 11  
Ответить с цитированием
zCHESNOKz
 
Аватар для zCHESNOKz

Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
Вот нашел, проблема в классе который хранит пулы. Кто скажет где именно здесь создаются анонимные функции? Каждый раз как достается объект из пула в профилировке пишет вызов метода MethodClosure

Код AS3:
package _utils
{ 
	public final class ObjectPool
	{
		private var pool:Vector.<Object>;
		private var counter:uint;
		private var className:Class;
 
		public function ObjectPool(className:Class, length:uint = 1)
		{
			this.className = className;
			pool = new Vector.<Object>(length);
 
			var i:uint = counter = length;
			//создадим начальный набор объектов
			while( --i > -1 ) 
				pool[i] = new className(); 
		}
 
		public function getObject():Object
		{
			if ( counter > 0 ) 
				return pool[ --counter ];
			// если объекты закончились
			// создаю объект и увеличивая длину массива
			pool.unshift( new className() );
			return pool[0];
		}
 
		public function returnObject(value:Object):void
		{
			pool[ counter++ ] = value;
		}
 
		// необязательный метод для тестирования
		public function toString():String
		{
			return "Pool of " + className + " count = " + counter + "/" + pool.length;
		}
	}
}