Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Мусор в памяти после жизнедеятельности программы. [D7, XP]


AlexanderMS ©   (2006-12-22 19:49:00) 

Могу ли я как-нибудь узнать, оставляет ли моя программа в памяти мусор после её завершения? Ну вдруг Free где-нибудь забуду поставить, а ведь так просто и не узнать, что и где забыл. Подумано ли об этом?


ors_archangel   (2006-12-23 19:02:00) [1]

delphim !
Вы пишите "…после отладки одного unit IDE delphi7 завершал работу некорректно." Что делал этот юнит? если не top secret :)


delphim   (2006-12-23 11:01:00) [2]

ors_archangel !
Вы пишете "Каждый процесс работает в виртуальном адрессном пространстве, которое уничтожается вместе с процессом, т.о. любые выделенные страницы освобождаются, если твоя программа и оставляет в памяти мусор, то он весь вычищается ОС". Вот у меня неонократно были случаи, когда после отладки одного unit IDE delphi7 завершал работу некорректно. Подозреваю (по типу сообщения ОС), что это именно этот случай. ОС = win2000 Server, SP4. Теоретически  всё обстоит именно так, однако, непонятки с утечкой памяти существуют.


Anatoly Podgoretsky   (2006-12-23 10:00:00) [3]

> Германн  (23.12.2006 1:39:12)  [12]

А вот накопители использовать можно, пример игровые приставки, не современные конечно.


Германн   (2006-12-23 01:39:00) [4]


> Если беспокоиться об этом, то не надо использовать компьютеры
> с оперативной памятью
>

А также не использовать накопители всез видов :-)

Но поддержу Коляна:

> Kolan ©   (22.12.06 21:27) [4]
...
> Но, ИМХО, лучьше на это не надеятся и делать самому все…
>

Особенно важно это в программах работающих непрерывно.


Anatoly Podgoretsky   (2006-12-23 00:32:00) [5]

> palva  (23.12.2006 0:18:10)  [10]

> если беспокоиться о сохранении секретов.

Если беспокоиться об этом, то не надо использовать компьютеры с оперативной памятью


palva   (2006-12-23 00:18:00) [6]

В файле подкачки мусор может остаться. И надолго. Это если беспокоиться о сохранении секретов.


tesseract   (2006-12-23 00:09:00) [7]


> Нет, спасибо :) А вот C# - это уже интересно


Тамошний ужас звать memlink :-) А так Delphi,  вид с высоты M$.


ors_archangel   (2006-12-22 23:54:00) [8]


> Покодь на C

Нет, спасибо :) А вот C# - это уже интересно


tesseract   (2006-12-22 23:44:00) [9]


> ors_archangel ©   (22.12.06 23:06) [5]


Покодь на C. Быстро вкатишь сколько там сил на слежение за памятью уходит, и с чего это buffer/stack overflow считаются критическими.


Kolan   (2006-12-22 23:18:00) [10]

то проблем с «мусором», наверника, было бы меньше
Ну так и разработчики C# так тоже думают…


ors_archangel   (2006-12-22 23:06:00) [11]


> лучьше на это не надеятся и делать самому все

Я вообще считаю, что создание и уничтожение сущностей избытоно, когда в языке чётко разграничены области видимости для каждой переменной. Например, мы же не пишем  i := TInteger.Create перед использованием целой переменной. Конечно, конструктор может принимать параметры, и т.о. создавать совершенно разные объекты, но ту же функциональность можно получить и через обычные свойства, если бы мы не создавали и не уничтожали объекты, то проблем с "мусором", наверника, было бы меньше


Kolan   (2006-12-22 21:27:00) [12]

> то он весь вычищается ОС

Но, ИМХО, лучьше на это не надеятся и делать самому все…


ors_archangel   (2006-12-22 21:21:00) [13]


> Подумано ли об этом?

Об этом подумали M$ и Intel:
Каждый процесс работает в виртуальном адрессном пространстве, которое уничтожается вместе с процессом, т.о. любые выделенные страницы освобождаются, если твоя программа и оставляет в памяти мусор, то он весь вычищается ОС


Anatoly Podgoretsky   (2006-12-22 19:57:00) [14]

> AlexanderMS  (22.12.2006 19:49:00)  [0]

По окончание работы вся память возвращается


Kolan   (2006-12-22 19:56:00) [15]

Можешь, для этого тебе понадобится «детектор утечек»…
1… MemProof
2… MemCheck
3… Можно взять BDS200 таем есть встроеный…


Наверх

Титульная страница Поиск, карта сайта Написать письмо