Показать сообщение отдельно
Старый 14.06.2018, 03:52
RedHead90 вне форума Посмотреть профиль Отправить личное сообщение для RedHead90 Найти все сообщения от RedHead90
  № 22  
Ответить с цитированием
RedHead90

Регистрация: Apr 2018
Сообщений: 42
robotR2D2, ну во-первых ты массив конвертируешь в строку, о чем тут выше уже писали, во-вторых у тебя вообще ничего из стека не выходит и этот код показывает лишь то, что спрайт остается висеть в памяти. Судьба вектора и массива остается при этом неизвестной. Но твой пост заставил меня задуматься о том, что либо все объекты остаются ждать сборщика, либо это только объекты отображения ведут себя как-то иначе.

В общем взял Scout и скормил ему такой код

Код AS3:
package {
import flash.display.Sprite;
 
public class Main extends Sprite {
 
    public var v:Vector.<Sprite>;
 
    public function Main() {
        super();
 
        for (var i:int = 0; i < 10000; ++i) {
            v = Vector.<Sprite>([new Sprite()]);
        }
    }
}
}
Как и ожидалось, в первом же кадре были освобождены все 10к массивов. Векторов освобождено 9998, а вот спрайтов всего 2.5к. Остальные 7.5к были собраны сборщиком после нажатия соответствующей кнопочки в скауте.


Последний раз редактировалось RedHead90; 14.06.2018 в 04:04.