十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
使用java自带的性能分析工具jvisualvm , 可以方便的查看内存, 对象, 线程等多种信息.
创新互联专业为企业提供高阳网站建设、高阳做网站、高阳网站设计、高阳网站制作等企业网站建设、网页设计与制作、高阳企业网站模板建站服务,10多年高阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
win+R 然后输入 jvisualvm 回车即可
效果如下图
你可以先用内存监控工具,进行监控,看看这个功能到底用多少内存。如果不多,其实都不需要实现你说的代码监控的。如果你要使用代码监控,你可是使用Runtime类的几个属性,MaxMemory、FreeMemory、TotalMemory。然后实现个线程,在下载pdf功能前开启线程,然后完毕时关闭线程,如果内存即将溢出(设定个阈值,比如说15%),就报错,跳转到错误页面。
要定位到行,代码要debug编译,至少要带上行信息。
线程占用内存高低,可以用jmap做heap dump出来给MomoryAnalysis分析他可以按线程统计,一般也可以用它来找出造成OOM的原因。
线程占用CPU,上述内存的问题是一个方面,另外也可以jstack打线程栈来分析。Linux上ps -T -p可以看底层线程的CPU占用(Windows上需要额外按工具),记得线程编号可以在jstack打出来的线程栈中检查。