![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мусор в памяти после жизнедеятельности программы. [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 таем есть встроеный