Memory Usage on Windows 7 RRS feed

  • Question

  • We have a performance critical application (a windows service) that required accessing around 5GB of data frequently. As a result, we decided to put the 5GB data in the shared memory for fast performance consideration. We are using the createFileMapping and mapViewofFile APIs from Microsoft to do the job. The system is running under windows 7.

    1. We found that when the system is about to running out of memory, our data file will be paged to the virtual memory and subsequent performance degrades. We would like to know if there exists a way for our user application to acquire non-paging memory. That mean we would like to acquire memory that will NOT page to the virtual memory. And always keep at the physical memory. Please provide the function call names and related sample source code.

    2. In case our shared memory are paged out from the physical memory to virtual memory, what is the appropriate way to detect this because we would like to alert customer that memory paging occurred. Please provide the function call names and related sample source code.

    3. What kind of tools can we see the memory usage at shared memory? For example, how much shared memory is consumed by our application? Is there any shared memory viewer available?

    4. How should we interpret the standby and free memory (diagram below)? We found that when free memory approach to zero, our application performance will become slow. While the available is 1567MB (standby + free). Why can’t we acquire that standby memory? What is the relationship between standby, free memory and shared memory? How can we check the available shared memory for acquire?

    Friday, December 18, 2015 7:53 AM