|
|
|||||
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
Вот нашел, проблема в классе который хранит пулы. Кто скажет где именно здесь создаются анонимные функции? Каждый раз как достается объект из пула в профилировке пишет вызов метода MethodClosure
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; } } } |
|
|||||
.
|
Возможно, в конструкторе или при инициализации полей нового объекта при вызове new className() и создаются ссылки на методы.
И не нужно думать, что MethodClosure создают только анонимные функции. |
|
|||||
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
Димарик, а нужно ли с этим как то бороться? Вообще то MethodClosure не занимает слишком много памяти как видно из скрина, но все же, такое количество экземпляров просто настораживает. А у вас бывало что нибудь подобное?
|
|
|||||
.
|
Один MethodClosure занимает 304 байта, согласно статистике Adobe Scout. Нужно ли бороться? Думаю, что нет. Да и как можно бороться с addEventListener, если он реально нужен?
|
|
|||||
Регистрация: May 2013
Адрес: (0, 0)
Сообщений: 176
|
Да, согласен. Эх, тогда я думаю, что это уже недочеты Adobe и AS3. Но не будем унывать, и будем пользоваться тем что есть
|
Часовой пояс GMT +4, время: 15:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|