java怎么优化内存占用_Java 程序该怎么优化?(工具篇)

程序员:为什么程序总是那么慢?时间都花到哪里去了?面试官:若你写的 Java 程序,出现了性能问题,该怎么去排查呢?工欲善其事必先利其器,为你呈上一箩筐性能优化工具,必有一款满足你,废话不多说,直奔主题。1.hprof 工具hprof 工具是通过织入监控代码,来对 Java 程序进行监控的一款工具。可以监控 Java 程序在运行时占用的 CPU,及统计堆内存使用等。例如:每隔 10 毫秒采样 C...
摘要由CSDN通过智能技术生成

程序员:为什么程序总是那么慢?时间都花到哪里去了?

面试官:若你写的 Java 程序,出现了性能问题,该怎么去排查呢?

工欲善其事必先利其器,为你呈上一箩筐性能优化工具,必有一款满足你,废话不多说,直奔主题。

1. hprof 工具

hprof 工具是通过织入监控代码,来对 Java 程序进行监控的一款工具。可以监控 Java 程序在运行时占用的 CPU,及统计堆内存使用等。

例如:每隔 10 毫秒采样 CPU 消耗信息,并把信息保存到 hprof.txt 文件中。

java -agentlib:hprof=cpu=times,interval=10,file=hprof.txt class复制代码

指令运行完,打开 hprof.txt 便很容易统计出哪些方法的运行耗时较长。

ed0b1ddb6b5da0dc2a460e957b09dd69.png

例如:输出 Java 应用程序中各个类所占用的内存百分比。

java -agentlib:hprof=heap=sites,file=hprof.txt class

备注:若未指定 file=hprof.txt,则默认会生成 java.hprof.txt 文件复制代码

打开输出的文件,效果如下。

gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==

2f774c7013bb6efe4d33e3faa5554876.png

例如:将 Java 应用程序的堆快照保存在文件 core.hprof 中,然后就可以使用 VisualVM 等工具来分析这个堆文件啦。

java -agentlib:hprof=heap=dump,format=b,file=core.hprof class复制代码

采用 VisualVM 工具打开 core.hprof 文件进行分析堆快照,效果如下。

72adadfda3b631b008fd2f9845053c3d.png

2. JConsole 工具

JConsole 是 Java 自带的图形化性能监控工具,可以让你摆脱命令行排查问题的痛苦。通过它,会非常容易的监测 Java 程序的运行情况。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值