Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Удаляет ли delete объект ИЗ ПАМЯТИ со всеми его потомками? (http://www.flasher.ru/forum/showthread.php?t=26375)

RFMitrio 28.01.2002 13:10

Удаляет ли delete объект ИЗ ПАМЯТИ со всеми его потомками?
 
Сабж. При использовании delete объект просто исчезает из поля видимости или все-таки он полностью удаляется со всеми своими потомками, освобождая при этом память?

RFMitrio 29.01.2002 20:17

Что, никто не знает что ли инфы по поводу? Почему я спрашиваю: просто читал, что переменные, объявленные как var внутри функции не видны другим функциям, но в памяти-то сидят при окончании работы функции! Это вам не класс памяти dynamic в Си! А что с объектами???

ish 29.01.2002 21:06

нет, удаляет только из поля "видимости" скрипта, при этом не освобождая память. хотя когда я смотрел в ИЕ память освобождалась :) в НН нет :)

RFMitrio 29.01.2002 21:16

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

john 29.01.2002 21:20

Вложений: 1
Вообщето, никто точно сказать по этому поводу и не сможет,
только предположить,

я смею предположить что да,

даже думаю что диструкция объекта произойдет и при присвоении значения Null переменной - ссылки на объект, если других переменных - ссылок нет....

опять же это предположение,
можно сделать такой пример,

сделаем двухкадровый цикл мувиклипа, и в первом кадре будем создавать новые объекты (штук пятьдесят с пятьдесят строковых полей), в другом кадре их удалять,

пример (аттаченый файл "test_delete.fla")

можно будет посмотреть что происходит с памятью в системе,
другого ничего предположить не могу,....

если не удалять то у меня панять загружалась плюс мег в секунду.....

с удаление вообще стоит на месте,

второй вариант проверки на диструкцию когда переменной - ссылки на объект присваивается Null и потом ссылка удаляется,

пример (аттаченый файл "test_delete_null.fla")

то же самое.

если есть другие предположения ... мне тоже интересно.

john 29.01.2002 21:25

2ish

странно.... у мне совершенно никаой разницы не было ни NN ни IE только НН сразу двадцать мег сам "отъел" сволочь :D
еще до запуска флэша.

а так ничего не заметил ... то же самое.

NN 6.2
IE 6.0

ish 29.01.2002 22:30

Вложений: 1
я делал так (см аттач)
при нажитии на кнопку "старт" создаются новые обьекты, на "стоп" обьекты создаваться перестают
кнопка "удалить" обьекты удяляет.
фиксируем значение памяти до старта и анализируем:

в плэйере и НН (4.72) r30,
при нажатии на "стоп" память заполняться перестает, по кнопке "удалить" ничего не происходит, значение не меняется.
кстати в бетовском шестом плейре происходит тоже самое

но в ИЕ (5.0) r42
нажимая на кнопку "удалить", явно видно что память принимает свое изначально значение, до создания обьектов

ish 30.01.2002 00:57

но, заметил еще кое что (для НН и плейера)
при нажатии на кнопку "удалить", обьекты удаляются, но память не меняет своего значения, но если после этого нажать "старт" (начнут заново создаваться обьекты с теми же именами) то значение памяти расти не будет, то есть "новые" обьекты занимают места "старых" которые остались в памяти. после того как количество "новых" созданных обьектов превысит количество "старых" удаленных, память опять начнет заполняться.
ну как правильно заметил john это предположения, хотя, имхо, логичные :)

RFMitrio 30.01.2002 12:13

Thnx. :) В любом случае, хорошо что происходит перезапись.


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

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