JVM 常用参数总结

1、-Xms20M 初始堆大小

2、-Xmx20M 最大堆大小

3、-Xmn10M 新生代大小

4、-Xss128K  每个线程堆栈大小 

5、-XX:+PrintFlagsInitial 打印所有可设置参数的初始值

6、-XX:+PrintFlagsFinal 代言所有可设置参数的当前值

7、-verbose:gc  开启打印垃圾回收日志

8、-Xloggc:eclipse_gc.log  日志文件输出路径

9、-XX:+PrintGCDetails (打印垃圾回收详情)

10、-XX:+PrintGCTimeStamps (打印垃圾回收时间信息时的时间格式) 

11、-XX:PermSize 设置永久代(perm gen)初始值。默认值为物理内存的1/64

扫描二维码关注公众号,回复: 2218175 查看本文章

12、-XX:MaxPermSize设置持久代最大值。物理内存的1/4

13、-XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息


14、jps 查看JAVA进程id 

(1)-m    输出传递给主类main()函数的参数

(2)-l       输出主类的全名

(3)-v      输出进程启动的JVM 参数

15、jstat 监视虚拟机各种运行状态信息

16、 jinfo  进程id  查看java进程的参数

17、jstack 进程id 查看java进程的线程堆栈信息

(1)-l 除堆外,显示关于锁的附加信息

(2)写一个jsp文件,可以部署到服务器上,实时查看线程堆栈信息,代码如下:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page import="java.util.Map" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>服务器线程信息</title>
</head>
<body>
<pre>
<%
	for(Map.Entry<Thread,StackTraceElement[]>stackTrace:Thread.getAllStackTraces().entrySet()){
		Thread thread=(Thread)stackTrace.getKey();
		StackTraceElement[] stack=(StackTraceElement[])stackTrace.getValue();
		if(thread.equals(Thread.currentThread())){
			continue;
		}out.print("\n线程: "+thread.getName()+"\n");
		for(StackTraceElement element:stack){
			out.print("\t"+element+"\n");
		}
	}


%>
</pre>
</body>
</html>


猜你喜欢

转载自blog.csdn.net/zhaoxinglin123/article/details/78527462