void GlobalMemoryStatus(
LPMEMORYSTATUS lpBuffer
);
其中傳入/出的structure 是:
typedef struct _MEMORYSTATUS {
DWORD dwLength; - 很莫名其妙,就是 這個structure 的size。
DWORD dwMemoryLoad; - memory loading %
DWORD dwTotalPhys; - 所有的 physical memory size
DWORD dwAvailPhys; - 目前可用的 physical memory size (還沒被 commit 的 memory)
DWORD dwTotalPageFile; - 所有的 disk page size
DWORD dwAvailPageFile; - 目前可用的 disk page size
DWORD dwTotalVirtual; - caller process 的所有 virtual memory address
DWORD dwAvailVirtual; - caller process 目前可用的 virtual memory address space
} MEMORYSTATUS, *LPMEMORYSTATUS;
所以一般看 AvailablePhys 就可以了,代表還有多少實體記憶體可以用。
頂多再看一下 AvailVirtual,看看是不是所有的Virtual Address都被 alloc 掉了 (DLL有這麼多嗎?)
這幾個參數值,可以用 remote performance monitor 看。
沒有留言:
張貼留言