13 Resident Pages
(0x00400000 : 0x00409000) > java.exe
.................................................................
每个映射都对应页表中的一项,组成了进程工作集另一个 4KB。但要从这些映射中发现应 用程序的哪些部分使用了最多的内存仍然很困难,但幸运的是下一部分输出给出了有用的总 结:
Category Total Private Shareable Shared
Pages KBytes KBytes KBytes KBytes
Page Table Pages 20 80 80 0 0
Other System 10 40 40 0 0
Code/StaticData 1539 6156 3988 1200 968
Heap 732 2928 2928 0 0
Stack 9 36 36 0 0
Teb 5 20 20 0 0
Mapped Data 30 120 0 0 120
Other Data 1314 5256 5252 4 0
Total Modules 1539 6156 3988 1200 968
Total Dynamic Data 2090 8360 8236 4 120
Total System 30 120 120 0 0
Grand Total Wo***ng Set 3659 14636 12344 1204 1088
如何监控Java应用程序的Windows内存使用情况(10)
时间:2011-04-16 IBM Emma Shepherd
最有趣的两个值通常是 Heap (即 Windows 进程堆)和 Other Data。直接通过调用 Windows API 分配的内存组成了进程堆部分,Other Data 中包括 Java 堆。Grand Total Wo***ng Set 对应 Task Manager 的 Mem Usage 和 TEB 字段(进程的线程环境块所需要的 内存,TEB 是一种 Windows 内部结构)。
最后,在 VADump -o 输出的最下端总结了 DLL、堆和线程栈对工作集的相对贡献:
Module Wo***ng Set Contributions in pages
Total Private Shareable Shared Module
9 2 7 0 java.exe
85 5 0 80 ntdll.dll
43 2 0 41 kernel32.dll
15 2 0 13 ADVAPI32.dll
11 2 0 9 RPCRT4.dll
53 6 0 47 MSVCRT.dll
253 31 222 0 jvm.dll
6 3 3 0 jsig.dll
7 4 3 0 xhpi.dll
15 12 3 0 hpi.dll
12 2 0 10 WINMM.dll
21 2 0 19 USER32.dll
14 2 0 12 GDI32.dll
6 2 0 4 LPK.DLL
10 3 0 7 USP10.dll
24 18 6 0 java.dll
22 16 6 0 core.dll
18 14 4 0 zip.dll
915 869 46 0 jitc.dll
Heap Wo***ng Set Contributions
6 pages from Process Heap (class 0x00000000)
0x00090000 - 0x00190000 6 pages
2 pages from Private Heap 0 (class 0x00001000)
0x00190000 - 0x001A0000 2 pages
0 pages from UNKNOWN Heap 1 (class 0x00008000)
0x001A0000 - 0x001B0000 0 pages
1 pages from Process Heap (class 0x00000000)
|