background image

 
每个线程都有他自己的 Stack。
  -Xss 每个线程的 Stack 大小
  Stack 的大小限制着线程的数量。如果 Stack 过大就好导致内存溢漏。-Xss 参数决定
Stack 大小,例如-Xss1024K。如果 Stack 太小,也会导致 Stack 溢漏。
  3.硬件环境
  硬件环境也影响 GC 的效率,例如机器的种类,内存,swap 空间,和 CPU 的数量。
  如果你的程序需要频繁创建很多 transient 对象,会导致 JVM 频繁 GC。这种情况你可
以增加机器的内存,来减少 Swap 空间的使用[2]。
  4.4 种 GC
  第一种为单线程 GC,也是默认的 GC。,该 GC 适用于单 CPU 机器。
  第二种为 Throughput GC,是多线程的 GC,适用于多 CPU,使用大量线程的程序。第
二种 GC 与第一种 GC 相似,不同在于 GC 在收集 Young 区是多线程的,但在 Old 区和第
一种一样,仍然采用单线程。-XX:+UseParallelGC 参数启动该 GC。
  第三种为 Concurrent Low Pause GC,类似于第一种,适用于多 CPU,并要求缩短因
GC 造成程序停滞的时间。这种 GC 可以在 Old 区的回收同时,运行应用程序。-XX:
+UseConcMarkSweepGC 参数启动该 GC。
  第四种为 Incremental Low Pause GC,适用于要求缩短因 GC 造成程序停滞的时间。这
种 GC 可以在 Young 区回收的同时,回收一部分 Old 区对象。-Xincgc 参数启动该 GC。
  4 种 GC 的具体描述参见[3]。