I have 3 instances of windows .net application running accessing the same data. Each exe loads the same 60MB datafile separately. It's CPU intensive compute job where CPU is at 100% accessing the same memory over and over, there are 24 threads on 12 cores. I'm thinking if I memory map the file, the 3 exe instances will share the same memory and it will fall into L3 cache. Is that correct? Will I see performance boost?
Asked
Active
Viewed 47 times
1 Answers
1
The only way to learn the answer is to use a benchmark. There are too many variables that make it practically impossible to answer your question.
The version of Windows. Windows 8 introduced many changes in its memory manager], see Memory combining in your case.
It is often up to the CPU to determine what will go in L3 cache based on what data from RAM is accessed. Then it is also whether the CPU cache will be invalidated during context-switches or not.
Normally, when threads work with same set of data, cache comes into play and improves performance dramatically (see the answer on this question). Well, just experiment and see what works for you better.

Nick
- 4,787
- 2
- 18
- 24