Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   addChild снова проблемы с логикой цикла (http://www.flasher.ru/forum/showthread.php?t=144193)

Tr1te 06.09.2010 20:43

Цитата:

Сообщение от etc (Сообщение 933810)
по факту она все равно объявлена ранее в начале функции.

А кстати, если я функцию многократно вызываю, в которой создается переменная, как это скажется на работе?

Где об этом можно почитать?

etc 06.09.2010 21:47

Цитата:

Сообщение от Tr1te (Сообщение 933889)
А кстати, если я функцию многократно вызываю, в которой создается переменная, как это скажется на работе?

Где об этом можно почитать?

Переменная будет создаваться каждый раз при вызове функции. Ну или я вопроса не понял.

i.o. 06.09.2010 22:03

Цитата:

А кстати, если я функцию многократно вызываю, в которой создается переменная, как это скажется на работе?
Если оч. сильно заботитесь о производительность, то вынесите в приватное поле переменную функции. В некоторых случаях даже дает прирост :)

etc 06.09.2010 22:05

i.o., интересно, в каких? Время доступа до локальной переменной однозначно меньше.

i.o. 06.09.2010 22:17

само собой меньше. Только если функция короткая (одна-две переменные и пара действий с ними), то заметно время создания переменной. И если в таком случае использовать приват, то заметен прирост в скорости. Но я повторяю - это если оч. сильно заботит производительность, где гиганские циклы и все в таком духе. В повседневной жизни на это нет смысла заморачиваться.

Tr1te 06.09.2010 22:23

Правильно ли я понял:

Если я по энтер фрейму вызываю функцию, которая создает переменную, и что-то ей присваивает. То переменная будет многократно создаваться, и засорять оперативку, до тех пор пока мусорщик не заберет их.

Лучше ли мне в такой ситуации, запихивать переменную в приватное поле, и внутри функции ее использовать, как единственную под которую была выделена память?

i.o. 07.09.2010 07:47

для ENTER_FRAME подобное не актуально. Да и потом переменная не засоряет память, если она не возвращается return'ом, она сразу же удаляется по окончанию функции.
Поищите высказывания wvxvw на подобные темы.

Tr1te 07.09.2010 10:40

Цитата:

Сообщение от i.o. (Сообщение 933936)
для ENTER_FRAME подобное не актуально.

Можете объяснить почему?

Да и потом не обязательно ENTER_FRAME'ом, просто очень часто вызываю функцию,

Цитата:

Сообщение от i.o. (Сообщение 933936)
если она не возвращается return'ом, она сразу же удаляется по окончанию функции.

А когда удаляются return'ые объекты? По идеи если они не удаляются, то они засоряют память, при частом вызове функции.

iNils 07.09.2010 12:29

Цитата:

А когда удаляются return'ые объекты?
Покуда на них есть ссылки.

i.o. 07.09.2010 12:40

Цитата:

Можете объяснить почему?
Вы сделайте тест и поймете, что речь идет про микросекунды. Заметно становиться только от миллиона вызовов в цикле и выше. ENTER_FRAME просто невозможно так часто вызывать, если только не вручную.


Часовой пояс GMT +4, время: 08:56.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.