如何找到驱动器的当前页面文件大小?
到Windows 7的Priror,在System32文件夹中曾经有一个名为pafefileconfig.vba的脚本可以使用。但它现在被删除了。
是否可以使用JNA获取详细信息?如果是,怎么样?
修改
这是我用JNA获取页面文件信息的代码:
Kernel32 kernel32 = (Kernel32)Native.loadLibrary("kernel32", Kernel32.class);
MEMORYSTATUSEX memInfo = new MEMORYSTATUSEX();
kernel32.GlobalMemoryStatusEx(memInfo);
int toMB = (1024*1024);
float RAM = memInfo.ullTotalPhys.floatValue();
float totalPage = memInfo.ullTotalPageFile.floatValue();
float availPage = memInfo.ullAvailPageFile.floatValue();
float availRam = memInfo.ullAvailPhys.floatValue();
System.out.println(memInfo.dwMemoryLoad);
System.out.println("RAM "+RAM/toMB);
System.out.println("RAM avail "+availRam/toMB);
float ramUsed = RAM-availRam;
System.out.println("RAM used "+ramUsed/toMB);
System.out.println("Total page(RAM+Page) "+(totalPage)/toMB);
float totalPageWithoutRam = totalPage-RAM;
System.out.println("Total page(without RAM) "+(totalPageWithoutRam)/toMB);
System.out.println("Total avail page(With free ram) "+availPage/toMB);
float avialPageWithoutRam = availPage-availRam;
System.out.println("Total page avail(Without ram) "+(avialPageWithoutRam)/toMB);
System.out.println("Page used so far(Without ram) "+(totalPageWithoutRam-avialPageWithoutRam)/toMB);
这是输出:
82
RAM 12285.582
RAM avail 2167.6758
RAM used 10117.906
Total page(RAM+Page) 24569.348
Total page(without RAM) 12283.766
Total avail page(With free ram) 12115.641
Total page avail(Without ram) 9947.965
Page used so far(Without ram) 2335.8008
我使用GetPerformanceInfo也得到了同样的结果。
但这与我运行 wmic pagefile
时的结果不同wmic:root\cli>pagefile list /format :list
AllocatedBaseSize=12285
CurrentUsage=843
Description=C:\pagefile.sys
InstallDate=20120329043502.876449+330
Name=C:\pagefile.sys
PeakUsage=843
Status=
TempPageFile=FALSE
为什么我看到了差异?
答案 0 :(得分:1)
通过WMI公开信息,您可以使用wmic命令行工具列出页面文件信息。
e.g。在我的桌面上:
C:\WINDOWS\system32>wmic pagefile list /format:list
AllocatedBaseSize=3840
CurrentUsage=213
Description=C:\pagefile.sys
InstallDate=20110616154020.168800+060
Name=C:\pagefile.sys
PeakUsage=231
Status=
TempPageFile=FALSE
您可以使用ProcessBuilder
等进行整合...
正如有人问的那样,这是暴露Win32_PageFileUsage
结构,它以MB为单位定义大小。