|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
02.11.2011, 21:46 | #21 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
YourLastSong
Недавно заметил через диспетчер задач, что в моей программе присутствуют утечки памяти. Кол-во операторов new совпадает с delete, а new[] — с delete[], malloc не использую. 1. для начала - убрать весь говно-код с голыми указателяими и new/delete и по максимуму заюзать std::unique_ptr/std::shared_ptr и идиому RAII. 2. пронаследовать все классы с указателями от boost::noncopyable, посмотреть что при этом произойдет, сделать выводы. 3. почитать доки как использовать DebugCrt, а частности про снапшоты памяти и диффы 4. воспользоваться специальзированными средстваими типа AQTime
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
02.11.2011, 21:50 | #22 | ||
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
Цитата:
|
||
02.11.2011, 21:52 | #23 |
Пользователь
Регистрация: 12.12.2010
Сообщений: 75
|
|
02.11.2011, 22:24 | #24 |
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
к советам Rififi можно еще добавить:
Не забываем про виртуальные деструкторы в базовых классах. new[]/delete[] - зло. по умолчанию лучше использовать что-нибудь готовое из stl. вместо массивов вектор - самое оно. |
02.11.2011, 22:36 | #25 | ||
Форумчанин
Регистрация: 07.01.2010
Сообщений: 141
|
Цитата:
Цитата:
В общем сперва вам стоит доказать, что утечки все-таки есть с помощью спец инструментов. |
||
02.11.2011, 22:48 | #26 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
Цитата:
Или наблюдем за ефектом какой-то последовательности действий на цифры в манагере? Если так, тоэто никак не помогает, на мой взляд, обнаружению утечек. Может манагер памяти решил не освобождать память, а держать ее зарезервированной, или еще какая фигня. |
|
02.11.2011, 22:56 | #27 |
C++,DirectX/OpenGL
Форумчанин
Регистрация: 09.01.2011
Сообщений: 422
|
Утечка памяти может быть не только из-за new/delete. Если создаются объекты GDI, то они должны быть освобождены, так же ком объекты (например, DirectX) могут привести к утечке.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Утечки памяти | volod3000 | Общие вопросы Delphi | 0 | 22.06.2011 00:08 |
утечки памяти | KOLANICH | Общие вопросы C/C++ | 3 | 30.01.2011 00:15 |
Утечки памяти. | c++ learner | Общие вопросы C/C++ | 3 | 29.11.2010 15:01 |
Достали утечки памяти | Порфирий | Общие вопросы C/C++ | 4 | 22.12.2009 11:32 |
InterBase 7.1 - утечки памяти. | pushkin42 | БД в Delphi | 2 | 21.03.2007 16:15 |