I am writing an application in C++ using WinAPI calls. I have recently looked at the statistics in Process Explorer and I can see, that the working set of the application is growing. Private bytes remain constant after the program has initialized. I am trying to understand is it a memory leak or not.
Some details:
I am not allocating any memory dynamically in my code using new or malloc. I do call CreateProcess periodically, but I keep reusing the same LPPROCESS_INFORMATION and LPSTARTUPINFO. I also make sure that I call TerminateProcess for each instance and close handles correctly after calling it.
My application performs the same task in multiple iterations, but I have noticed that the working set does have the same value and does not grow with the same speed every time I run the program.
I also know that my code is not leaking any handles. I have double checked it.
Should I be worried about working set growing slowly as the program runs? Can it be that the working set is growing just because of the paging algorithm of OS?
I found a very good question and several good explanations here. But this does not answer my question.
UPDATE: I am using MinGW + Eclipse