Delphi 7.0 и утечка памяти? - PullRequest
       54

Delphi 7.0 и утечка памяти?

4 голосов
/ 14 апреля 2011

Потратив время с FastMM4 на отсеивание любых фрагментов кода, которые могут вызвать утечку памяти, как указывает FastMM4, мы тестировали наше программное обеспечение без перерыва около месяца в Windows 7. Это то, что я вижупока в диспетчере задач для моего программного процесса.

> -CPU started out at 1% and 0%. Now it is bouncing around from 2% to 5%
> -VM usage started out at 11,852KB. Now it is at 4,900kb but bouncing
> around from 4,900kb to 5,000kb.

Означает ли это, что в нашем программном обеспечении есть утечка памяти?Я смущен и обеспокоен.

Заранее спасибо,

Ответы [ 4 ]

4 голосов
/ 14 апреля 2011

Звучит как обычное использование памяти.Программа делает что-то, что требует памяти, и использование памяти возрастает.Программа завершает свою работу и освобождает память, а использование памяти восстанавливается.Утечка памяти происходит, когда использование памяти возрастает, а поддерживает , потому что вы не освобождаете память, как только закончите.

Если у вас есть FastMM4, вам не следуетНе нужно охотиться за вещами, которые могут вызвать утечку памяти.Просто включите режим полной отладки и параметр ведения журнала, и он найдет любую утечку памяти при запуске, и запишет файл с типами и трассировкой стека.

4 голосов
/ 14 апреля 2011

Нет, когда использование памяти увеличивается, и в конечном итоге ваше приложение использует всю доступную память, у вас есть утечка памяти и причина для беспокойства.

3 голосов
/ 14 апреля 2011

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

Чтобы убедиться, что весь код проверен на утечки, вы можете использовать FastMM4 с модульными тестами (с DUnit ), обеспечивая выполнение максимально возможного количества путей кода. Охват кода модульного теста можно измерить, например, с помощью этого инструмента Delphi с открытым исходным кодом или Discover , который недавно стал открытым исходным кодом .

Кроме того, DUnit в версии соединительной линии (9.4.0) поддерживает автоматическое обнаружение утечки памяти (на основе FastMM4) для каждого теста.

1 голос
/ 22 ноября 2011

Может стоит задуматься об отладчике? Я понял, что вы их не используете. У меня тоже были проблемы с утечками памяти. Я просто не догадывался об этом. Теперь воспользуйтесь «хранителем» утечек - для меня это стало делакером. И вы можете посмотреть такой, который вас порадует.

...