UPDATE 2 / TL;DR
Is there some way to prevent dirty pages from a windows temporary delete-on-close file being flushed as a result of cl
If I take it correctly, commenting out Arena2
part of code shall reproduce the issue without the need for second process. I have tried this:
I edited base_path
as follows for convenience:
char base_path[MAX_PATH];
GetTempPathA(MAX_PATH, base_path);
strcat_s(base_path, MAX_PATH, "page_pool");
n_pages = 1536 * 128
to bring the used memory to 1.5GB, compared to your ~800mb.TempFileMapping(false)
and TempFileMapping(true)
, one at a time, for the same results.Arena2
commented out and intact, for the same results.So, the question is, what are you observing? I'd suggest that you:
Update I have tested on yet another Win7 x64, and times are 890ms full, 430ms spent on dealloc. I have looked into your results, and what is VERY suspicious is that almost exactly 4000ms is spent in freeze each time on your machine. That can't be a mere coincidence, I believe. Also, it's rather obvious now the the problem is somehow bound to a specific machine you're using. So my suggestions are: