Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Утечка памяти, Memory leak 
V
    Опции темы
Ak47black
  Дата 18.11.2007, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Здравствуйте.
Я хотел-бы узнать как бороться с утечкой памяти.
Я наблюдаю у себя очень медленную утечку памяти. Если смотреть с procexp то надо 10 мин чтобы хоть чтото заметить. Код большой.
Подскажите как лучше всего с этим бороться, с чего мне стоит начать анализ, какими програми вы пользуетесь ? 
PM MAIL   Вверх
OdesitVadim
Дата 18.11.2007, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2007
Где: Одесса:)

Репутация: нет
Всего: нет



для начала можно поставить fastmm и в его inc файле выставить полный отчет (раскомментировав соотвествующую директиву).
после этого при закрытии программы будет выдаваться лог, кто создался и не удалился или дважды удалялся.
PM MAIL   Вверх
aktuba
Дата 19.11.2007, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Смышленный
***


Профиль
Группа: Завсегдатай
Сообщений: 1915
Регистрация: 24.4.2006
Где: Планета Земля

Репутация: 16
Всего: 38



Цитата(Ak47black @  18.11.2007,  23:49 Найти цитируемый пост)
Подскажите как лучше всего с этим бороться, с чего мне стоит начать анализ, какими програми вы пользуетесь ?  

Найти место, где происходит утечка. Так с ходу трудно что-то советовать...


--------------------
user posted image
PM MAIL WWW Skype   Вверх
ama_kid
Дата 19.11.2007, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



Цитата(Ak47black @  18.11.2007,  22:49 Найти цитируемый пост)
Подскажите как лучше всего с этим бороться, с чего мне стоит начать анализ, какими програми вы пользуетесь ?
модуль MemCheck выдает неплохо сформированную информацию о стеке вызовов, приведших с мемори-лику... по крайней мере сузить область поисков до одной-двух функций может гарантированно...




--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Ak47black
Дата 19.11.2007, 14:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Так попробовал я MemCheck и вижу такой вот страшный-непонятный stack например
Код

TOP 10 Leaks: begin
Leak #0 User allocated memory (GetMem)
    Size: 40
    1 Occurence
    call stack - 0 : (no debug info) Find error: 010853DC
    call stack - 1 : Module Unit1.pas Routine @Unit1@TMainForm@ServerSocketClientConnect Line 845 Find error: 004DBD4D
    call stack - 2 : Module ScktComp.pas Routine @Scktcomp@TServerWinSocket@ClientConnect Line 1558 Find error: 0048FF27
    call stack - 3 : Module ScktComp.pas Routine @Scktcomp@TServerWinSocket@ClientEvent Line 1326 Find error: 0048F888
    call stack - 4 : Module ScktComp.pas Routine @Scktcomp@TCustomWinSocket@Event Line 980 Find error: 0048ECF9
    call stack - 5 : Module ScktComp.pas Routine @Scktcomp@TServerClientWinSocket@Create Line 1242 Find error: 0048F55F
    call stack - 6 : Module ScktComp.pas Routine @Scktcomp@TServerWinSocket@GetClientSocket Line 1501 Find error: 0048FDA4
    call stack - 7 : Module ScktComp.pas Routine @Scktcomp@TServerWinSocket@Accept Line 1400 Find error: 0048F9D1
    call stack - 8 : Module ScktComp.pas Routine @Scktcomp@TCustomWinSocket@CMSocketMessage Line 680 Find error: 0048E506
    call stack - 9 : Module ScktComp.pas Routine @Scktcomp@TCustomWinSocket@WndProc Line 1162 Find error: 0048F28C
    call stack - 10 : Module classes.pas Routine @Classes@StdWndProc Line 10965 Find error: 004297CA
    call stack - 11 : (no debug info) Find error: 7E418730
    call stack - 12 : (no debug info) Find error: 7E418812
    call stack - 13 : (no debug info) Find error: 7E4189C9
    call stack - 14 : (no debug info) Find error: 7E4196C3
    call stack - 15 : Module Forms.pas Routine @Forms@TApplication@ProcessMessage Line 6872 Find error: 0048B545
    call stack - 16 : Module Forms.pas Routine @Forms@TApplication@HandleMessage Line 6891 Find error: 0048B58C
    call stack - 17 : Module Forms.pas Routine @Forms@TApplication@Run Line 6975 Find error: 0048B827
    call stack - 18 : Module Project.dpr Routine initialization Line 38 Find error: 004E1AD5
    call stack - 19 : (no debug info) Find error: 7C816FD3
    call stack - 20 : (no debug info) Find error: FFFFFFFC

Кто-нибудь может из вышеприведенного сказать, где мне эту утечку искать?

Добавлено @ 14:29
7C816FD3 это гдето в windows dll искать надо как я вижу?  smile 

Это сообщение отредактировал(а) Ak47black - 19.11.2007, 14:30
PM MAIL   Вверх
OdesitVadim
Дата 19.11.2007, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 9.11.2007
Где: Одесса:)

Репутация: нет
Всего: нет



здесь call stack - 1 : Module Unit1.pas Routine @Unit1@TMainForm@ServerSocketClientConnect Line 845 Find error: 004DBD4D
PM MAIL   Вверх
Ak47black
Дата 19.11.2007, 20:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2205
Регистрация: 2.12.2005

Репутация: 1
Всего: 0



Ок. Буду смотреть дальше, спасибо всем кто участвовал.
PM MAIL   Вверх
Akella
Дата 21.11.2007, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Вот ещё проверка утечек памяти
Код

  ReportMemoryLeaksOnShutdown := DebugHook <> 0;

вставь в создании главной формы

Может ты создаёшь чего, например TStringList, но не уничтодаешь
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0526 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.