java 项目,内存分析心得

最近做了一个项目,从一个数据库里边查询出对应的数据,将数据整理后,生成图表,保存成pdf文件,再存入到数据库中。

数据量大约在44万多条,要求每秒生成一个pdf文件。5天左右跑完。

从业务需求来看,这应该是一个IO密集型的业务,那么对于cpu的要求在单线程情况下就显得不是那么高,所以可以采用多线程,线程池的方式并发处理业务数据。由于在生成图片时也需要一个其它的处理,目前是用nginx分流了5个phantomjs,这就占用了系统的6个进程,也占用了cpu一定的百分比。剩余的cpu,能满足java多线程的要求就可以了。

对于内存,phantomjs运行的比较稳定,

java运行内存设置的堆内存是1个g。启动了5个线程处理业务需求。

使用的分析工具是mat

linux执行命令 jmap -dump:live,format=b,file=heap-dump1.bin pid   执行完会生成dump报告文件。

将报告文件放到安装了mat的插件上,进行内存占用的分析,查看哪些地方的内存没有合理的释放,进而使系统运行的更加的稳定高效,合理的利用系统资源。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值