JDK自带工具jstat
打印类加载器信息,其中8297为java项目的进程号,可以使用jps名称打印java所有项目的进程号
1 | jstat - class 8297 |
打印编译情况
1 | jstat -compiler 8297 |
编译16705,编译失败一个,失败的方法sun/misc/URLClassPath getLoader
统计堆空间的情况,间隔时间2秒,执行5次
1 | jstat -gc 8297 2000 5 |
统计堆的占比情况
1 | jstat -gcutil 8297 2000 5 |
启动类配置
1 2 | 最大堆 最小堆 年轻代 设置串行的垃圾回收器 只要有垃圾回收就打印日志 -Xms20M -Xmx20M -Xmn10M -XX:+UseSerialGC -XX:+PrintGCDetails -verbose:gc |
输出堆内存变化
Full GC (Allocation Failure)表示年轻代没有足够的区域存放需要分配的数据而出现的失败
A new max generation size of 1023936k will be used.这里显示最大不能超过999M
调整配置为
1 | -Xms800M -Xmx800M -Xmn300M -XX:+UseSerialGC -XX:+PrintGCDetails -verbose:gc |
这里需要说明的是年轻代和老年代设置的内存不能超过堆内存的大小
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异