Здравствуйте, Losar, Вы писали:
L>Привет..
L>Существуют ли софтины для поиска утечек памяти в реальном времени? Желательно не монстры на 200 метров, неважно платные или нет.
L>Спасибо.
Здравствуйте, Losar, Вы писали:
L>Существуют ли софтины для поиска утечек памяти в реальном времени? Желательно не монстры на 200 метров, неважно платные или нет.
Маленький коммент. Строго говоря, некорректно говорить об утечках памяти, пока программа не вышла на функцию окончания процесса (ExitProcess для Windows).
void main()
{
int *p = new int[100];
// рабочий циклreturn 0;
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Losar, Вы писали:
L>>Существуют ли софтины для поиска утечек памяти в реальном времени? Желательно не монстры на 200 метров, неважно платные или нет.
PD>Маленький коммент. Строго говоря, некорректно говорить об утечках памяти, пока программа не вышла на функцию окончания процесса (ExitProcess для Windows).
PD>
PD>void main()
PD>{
PD> int *p = new int[100];
PD> // рабочий цикл
PD> return 0;
PD>
Здравствуйте, Losar, Вы писали:
L>Привет..
L>Существуют ли софтины для поиска утечек памяти в реальном времени? Желательно не монстры на 200 метров, неважно платные или нет.
L>Спасибо.
2 неприятных момента:
* вам понадобятся символы к коду — это затрудняет поиск утечек в продакшене, который вы не контролируете целиком.
* на счет реального времени — ни эмуляция цпу (valgrind) ни сброс крупных snaphots на диск на реальное время не сильно похожи.
так что вполне возможно вам нужна кооперация самой программы. Чтобы нужная статистика о распределении памяти собиралась инкрементно и была доступна.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Маленький коммент. Строго говоря, некорректно говорить об утечках памяти, пока программа не вышла на функцию окончания процесса (ExitProcess для Windows).
PD>
PD>void main()
PD>{
PD> int *p = new int[100];
PD> // рабочий цикл
PD> return 0;
PD>
Это не утечка. Утечка — это когда память выделяется но к ней больше нельзя доступиться.
"For every complex problem, there is a solution that is simple, neat,
and wrong."
PD>Маленький коммент. Строго говоря, некорректно говорить об утечках памяти, пока программа не вышла на функцию окончания процесса (ExitProcess для Windows).
Это не так.
Есть железные случаи утечки, детектируемые до окончания процесса. Простейший пример:
Здравствуйте, Losar, Вы писали:
L>Привет..
L>Существуют ли софтины для поиска утечек памяти в реальном времени? Желательно не монстры на 200 метров, неважно платные или нет.
могу порекомендовать visual leak detector
и функции
UINT VLDReportLeaks ();
UINT VLDGetLeaksCount ();