Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Непонятная утечка памяти   Найти похожие ветки 

 
Aleksandr.   (2004-08-17 13:34) [0]

Смотрел за памятью программы через диспетчер задач, и заметил оригинальное поведение - по ходу работы память растет-растет... Потом делаешь простейшую операцию - сворачиваешь окно программы в tray и опять разворачиваешь - и память, занимаемая ею, опять возвращается в изначальный размер. Существует реальная проблема - за несколько часов работы программа "выедает" все ресурсы компьютера (а освобождает их сворачиванием/разворачиванием, но не будешь же сидеть сутками и тыркать по трею). Что может вызывать такие "спецэффекты"?


 
VMcL ©   (2004-08-17 13:38) [1]

>>Что может вызывать такие "спецэффекты"?

Обычно, ошибка в программе.


 
WondeRu ©   (2004-08-17 13:43) [2]

Aleksandr.   (17.08.04 13:34)
проблемы с резервированием страниц памяти! С памятью как работаешь?


 
Aleksandr.   (2004-08-17 13:57) [3]

Ох, память юзается по-всякому. Прога вообще юзает почти все, что есть в программировании - и протоколы, и многопоточности, и базы данных разных драйверов. Это типа наш сервер, поэтому такой навороченный. Недавно я его перекомпилял под Д7 (из Д6), и поехала такая пестня. Только в теории я слаб, поэтому нельзя ли объяснить, что вы имеете в виду под "резервированием страниц"?


 
WondeRu ©   (2004-08-17 14:03) [4]

Aleksandr.   (17.08.04 13:57) [3]
у Подгорецкого на сайте есть Memory SDK на русском! Советую глянуть! www.podgoretsky.com


 
Aleksandr.   (2004-08-17 14:07) [5]

Хорошо. Кстати, истчо вопрос - ограничено ли как-то количество Event"ов, которые может юзать программа? У меня с десяток загруженных под полную WaitForMultipleObject, один семафор, ну и по ходу работы бывает под пару сотен одиночных Event"ов для WaitForSingleObject...


 
WondeRu ©   (2004-08-17 14:21) [6]

Aleksandr.   (17.08.04 14:07) [5]
это без проблем! должно работать нормально!


 
Erik1   (2004-08-17 14:24) [7]

Думаю, что с программой все в порядке, иначе никаким бы сворачиванием неполучилось вернуть память системе. Обычное незервирование страниц, только непонятно почему из освобожденых страниц неберется память. Возможно виновата фрагментация, это легко проверить MemoryChecker. Или вызовом функций диспечера памяти Borland.
 А зачем переходить на Delphi 7? Я вот тоже нездоровый интерес проявлял по переходу на D6 или D7 с Delphi 5. Попробовал получил в потоках ошибки, посмотрел системные библиотеки и понял, что мне это никогда непонадобится! Спокой сижу на пятерке, чего и вам советую.


 
Aleksandr.   (2004-08-17 14:54) [8]

Erik1:
А можно подробнее про фрагментацию? Объясните, пожалуйста, что мне конкретно нужно сделать, чтобы хотя бы проверить Вашу версию? Кстати, обратил внимание еще на следующее: перевожу программу в холостой режим (то есть она ничем не занимается, просто просматривает папки и слушает порты), память при разворачивании из tray сначала вырастает на метр, потом успокаивается. В визуальном окне программы находится TStringGrid из двух колонок - для ведения лога. Так вот при скроллинге по этой гриде память все время растет и не падает до очередного сворачивания/разворачивания. Соответственно, как я подозреваю, в рабочем режиме прирост памяти вызывается в той же опере. Это вообще нормально для StringGrid - такое поведение?


 
Aleksandr.   (2004-08-17 14:57) [9]

А по поводу перехода на Д7 - пришлось из-за МИДАСа. В Д7 там несколько больше и лучше возможности.


 
Erik1   (2004-08-19 10:13) [10]

Советую воспользоватся поисковиком и посмотреть различные MemCheck. А также почитать статьеи о диспечерах памяти.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.033 c
14-1092122469
VMcL
2004-08-10 11:21
2004.09.05
И снова пестня...


1-1092669355
Реактор
2004-08-16 19:15
2004.09.05
Процедура бесконтрольно ест память


1-1092846426
dimon1979
2004-08-18 20:27
2004.09.05
Гиперссылка


1-1092823928
EvgeniyR
2004-08-18 14:12
2004.09.05
TreeView


8-1087315978
dimon_programmer
2004-06-15 20:12
2004.09.05
Поставить битмап на место





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский