我目前正在对Maven Tomcat7插件进行一些内存设置测试。我正在使用以下内容将Thread Stack Size设置为128k:
set MAVEN_OPTS=-XX:NativeMemoryTracking=summary -Xss128k
之后,我使用Native Memory Tracking Option运行jcmd,得到以下输出。
C:\Users\gdrocell>jcmd 8672 VM.native_memory summary
8672:
Native Memory Tracking:
Total: reserved=9995213KB, committed=1283517KB
- Java Heap (reserved=8282112KB, committed=868864KB)
(mmap: reserved=8282112KB, committed=868864KB)
- Class (reserved=1103777KB, committed=59857KB)
(classes #9079)
(malloc=10145KB #11226)
(mmap: reserved=1093632KB, committed=49712KB)
- Thread (reserved=15844KB, committed=15844KB)
(thread #25)
(stack: reserved=15616KB, committed=15616KB)
(malloc=72KB #132)
(arena=156KB #48)
- Code (reserved=253665KB, committed=23761KB)
(malloc=4065KB #6562)
(mmap: reserved=249600KB, committed=19696KB)
- GC (reserved=313042KB, committed=288418KB)
(malloc=10386KB #203)
(mmap: reserved=302656KB, committed=278032KB)
- Compiler (reserved=152KB, committed=152KB)
(malloc=21KB #204)
(arena=131KB #3)
- Internal (reserved=10653KB, committed=10653KB)
(malloc=10589KB #10938)
(mmap: reserved=64KB, committed=64KB)
- Symbol (reserved=13705KB, committed=13705KB)
(malloc=10756KB #102196)
(arena=2949KB #1)
- Native Memory Tracking (reserved=2065KB, committed=2065KB)
(malloc=7KB #85)
(tracking overhead=2058KB)
- Arena Chunk (reserved=197KB, committed=197KB)
(malloc=197KB)
如您所见,线程堆栈大小似乎为15.25mb。有谁知道这是为什么?
答案 0 :(得分:1)
如果无法更改堆栈要求 应用程序,您可以使用-Xss更改线程堆栈大小 命令行选项。
这是每个线程的堆栈大小。你提到的数字会随线程数而变化。
修改强>
这是120左右的很多线程。我会使用-XX:NativeMemoryTracking = detail。查看信息是否更有意义