Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 3 > Класс String


Автор: nilrem 20.5.2009, 02:34
Так как AS3 уж очень похож на яву, назрел такой вопрос:
В java при использования плюсика для конкатинации строк
Код

var string:String = 'bla';
string + 'blabla';

 происходит следующее: cоздается новая строка из двух предыдущих, а старая уходит в память  smile  ...так ли это в AS3 и если да, то на сколько эффективно с ними справляется gc
По моим теста выходит что так и есть и gc не всегда отчищает мусор  smile . Вот хотелось уточнить. 

Автор: szz 6.8.2009, 09:48
Если делаешь
string = string + 'blabla';
то да, делается новый объект, старый в мусор.
Но gc у нас считает референсы и обычно, если проц не сильно занят, убъет по обнулению счетчика референса, в нашем случае сразу же (если ничего CPU-емкого сразу после этого делать не будешь)
Потестируй и смотри в flash.system.System.totalMemory

Автор: nilrem 6.8.2009, 11:50
Спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)