Просмотр полной версии : Удаляет ли delete объект ИЗ ПАМЯТИ со всеми его потомками?
RFMitrio
28.01.2002, 13:10
Сабж. При использовании delete объект просто исчезает из поля видимости или все-таки он полностью удаляется со всеми своими потомками, освобождая при этом память?
RFMitrio
29.01.2002, 20:17
Что, никто не знает что ли инфы по поводу? Почему я спрашиваю: просто читал, что переменные, объявленные как var внутри функции не видны другим функциям, но в памяти-то сидят при окончании работы функции! Это вам не класс памяти dynamic в Си! А что с объектами???
нет, удаляет только из поля "видимости" скрипта, при этом не освобождая память. хотя когда я смотрел в ИЕ память освобождалась :) в НН нет :)
RFMitrio
29.01.2002, 21:16
Уау, Иш, а как ты это проверяешть ( в ИЕ и НН )? Есть какой-то дебаггер?
--------
То есть если удалить объект и потом создать объект с таким же именем, в конструкторе надо определить обязательную инициализацию свойств, получается. :p
Вообщето, никто точно сказать по этому поводу и не сможет,
только предположить,
я смею предположить что да,
даже думаю что диструкция объекта произойдет и при присвоении значения Null переменной - ссылки на объект, если других переменных - ссылок нет....
опять же это предположение,
можно сделать такой пример,
сделаем двухкадровый цикл мувиклипа, и в первом кадре будем создавать новые объекты (штук пятьдесят с пятьдесят строковых полей), в другом кадре их удалять,
пример (аттаченый файл "test_delete.fla")
можно будет посмотреть что происходит с памятью в системе,
другого ничего предположить не могу,....
если не удалять то у меня панять загружалась плюс мег в секунду.....
с удаление вообще стоит на месте,
второй вариант проверки на диструкцию когда переменной - ссылки на объект присваивается Null и потом ссылка удаляется,
пример (аттаченый файл "test_delete_null.fla")
то же самое.
если есть другие предположения ... мне тоже интересно.
2ish
странно.... у мне совершенно никаой разницы не было ни NN ни IE только НН сразу двадцать мег сам "отъел" сволочь :D
еще до запуска флэша.
а так ничего не заметил ... то же самое.
NN 6.2
IE 6.0
я делал так (см аттач)
при нажитии на кнопку "старт" создаются новые обьекты, на "стоп" обьекты создаваться перестают
кнопка "удалить" обьекты удяляет.
фиксируем значение памяти до старта и анализируем:
в плэйере и НН (4.72) r30,
при нажатии на "стоп" память заполняться перестает, по кнопке "удалить" ничего не происходит, значение не меняется.
кстати в бетовском шестом плейре происходит тоже самое
но в ИЕ (5.0) r42
нажимая на кнопку "удалить", явно видно что память принимает свое изначально значение, до создания обьектов
но, заметил еще кое что (для НН и плейера)
при нажатии на кнопку "удалить", обьекты удаляются, но память не меняет своего значения, но если после этого нажать "старт" (начнут заново создаваться обьекты с теми же именами) то значение памяти расти не будет, то есть "новые" обьекты занимают места "старых" которые остались в памяти. после того как количество "новых" созданных обьектов превысит количество "старых" удаленных, память опять начнет заполняться.
ну как правильно заметил john это предположения, хотя, имхо, логичные :)
RFMitrio
30.01.2002, 12:13
Thnx. :) В любом случае, хорошо что происходит перезапись.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.