我在JDK 1.8.0_45显示应用:
Native Memory Tracking:
Total: reserved=4023326KB, committed=2762382KB
- Java Heap (reserved=1331200KB, committed=1331200KB)
(mmap: reserved=1331200KB, committed=1331200KB)
- Class (reserved=1108143KB, committed=64559KB)
(classes #8621)
(malloc=6319KB #17371)
(mmap: reserved=1101824KB, committed=58240KB)
- Thread (reserved=1190668KB, committed=1190668KB)
(thread #1154)
(stack: reserved=1185284KB, committed=1185284KB)
(malloc=3809KB #5771)
(arena=1575KB #2306)
- Code (reserved=255744KB, committed=38384KB)
(malloc=6144KB #8858)
(mmap: reserved=249600KB, committed=32240KB)
- GC (reserved=54995KB, committed=54995KB)
(malloc=5775KB #217)
(mmap: reserved=49220KB, committed=49220KB)
- Compiler (reserved=267KB, committed=267KB)
(malloc=137KB #333)
(arena=131KB #3)
- Internal (reserved=65106KB, committed=65106KB)
(malloc=65074KB #29652)
(mmap: reserved=32KB, committed=32KB)
- Symbol (reserved=13622KB, committed=13622KB)
(malloc=12016KB #128199)
(arena=1606KB #1)
- Native Memory Tracking (reserved=3361KB, committed=3361KB)
(malloc=287KB #3994)
(tracking overhead=3075KB)
- Arena Chunk (reserved=220KB, committed=220KB)
(malloc=220KB)
这说明提交内存,包括分配的堆的1.3GB和1.2GB差不多分配线程堆栈(使用多线程)的2.7GB。
但是,在运行ps ax -o pid,rss | grep 或top时,它只显示了1.6GB的RES/rss常驻内存。检查交换表示没有使用:
free -m
total used free shared buffers cached
Mem: 129180 99348 29831 0 2689 73024
-/+ buffers/cache: 23633 105546
Swap: 15624 0 15624
为什么JVM表明只有1.6GB驻留时提交2.7GB内存?剩下的去哪了?
2015-07-01
Dave L.
+0
可能的重复[RSS是否保留或提交内存?](http://stackoverflow.com/questions/31071019/does-rss-tracks-reserved-or-commited-memory) –
+0
没有。那个问题和答案讨论保留但未提交的记忆以及说承诺和居民互换之间的区别,我指出的情况并非如此。 –
+0
答案还包括承诺与居民之间的差异。 –