jvm相关
-XX:+PrintGCDetails 打印GC日志在控制台
-Xss 设置栈大小
-Xmx 设置最大堆大小:
-Xms 设置最小堆大小:JVM启动时所占用的操作系统内容大小。
java运行时先被分配-Xms制定的内存大小,并尝试在这么大小的内存中运行程序,确实无法满足时才会想操作系统申请更多的内存,直到达到-Xmx指定的最大内容,如果超过最大堆内存大小,抛出OutofMemoryError
通常将最大堆内存和最小堆内存设置为相同,这样减少minijor gc次数,甚至引发Full gc,
方法区:存放类的类型信息,常量池,方法信息等
方法区也叫永久区(持久代),-XX:MaxPermSize设置最大值,
-XX:PermSize设置初始大小
堆=新生代+老年代
新生代:-Xmn ,一般为整个堆空间的1/3
如果需要大量线程并发执行,设置较小的堆和栈值能提高线程数量
Heap = { Old + NEW = {Eden, from, to} },Old 即 年老代(Old Generation),New 即 年轻代(Young Generation)
可能导致Full GC的情况:
· 年老代(Tenured)被写满
· 持久代(Perm)被写满
· System.gc()被显示调用