Я пишу приложение на C ++, используя вызовы WinAPI. Недавно я посмотрел статистику в Process Explorer и вижу, что рабочий набор приложения растет. Частные байты остаются постоянными после инициализации программы. Я пытаюсь понять, утечка памяти или нет.
Некоторые детали:
Я не распределяю память динамически в моем коде, используя новый или же таНос. Я периодически вызываю CreateProcess, но продолжаю использовать те же LPPROCESS_INFORMATION и LPSTARTUPINFO. Я также уверен, что я вызываю TerminateProcess для каждого экземпляра и корректно закрываю дескрипторы после его вызова.
Мое приложение выполняет одну и ту же задачу в несколько итераций, но я заметил, что рабочий набор имеет одно и то же значение и не увеличивается с одинаковой скоростью при каждом запуске программы.
Я также знаю, что мой код не пропускает никаких ручек. Я дважды проверил это.
Должен ли я беспокоиться о том, что рабочий набор медленно растет во время работы программы? Может ли быть так, что рабочий набор растет только из-за алгоритма подкачки ОС?
Я нашел очень хороший вопрос и несколько хороших объяснений Вот. Но это не отвечает на мой вопрос.
ОБНОВИТЬ: Я использую MinGW + Eclipse
Задача ещё не решена.