商业机会 产品大全 企业名录 我商务中心 | | 手机站 网址:mat2015.qy6.com 重庆java培训名师解决java程序运行慢问题_重庆汉昌移动互联网学校
重庆汉昌移动互联网学校
联系人:蒋小均 先生 (技术顾问)
电 话:023-61206819
手 机:

产品目录

重庆java培训名师解决java程序运行慢问题

留言询价
详细说明

    遇到Java程序运行慢问题,我们有时候不知道问题出在什么地方?重庆java培训名师为你解答:



 

  先通过 top 查看整个CPU资源使用情况;

 

  通过top -Hp pid查看java进程的每一个线程占用CPU的情况;

 

  如果有一个线程占用CPU过高,有两种可能:

 

  没有内存了,Java垃圾回收线程不停地运行尝试回收内存,但是每次无法收回,确认:

 

  jstat -gcutil pid 1s 观察10多秒钟就能发现了,看是不是内存使用率接近100%了

 

  类似于死循环(hash冲突攻击),就是一个线程一直占用一个核的所有CPU资源(其实一个线程总是暂用一个核超过50%的资源都是不太正常的),解决:

 

  用我课堂的checkPerf脚本,定位这个线程具体执行的任务(能具体到某一行),对应看代码解决。

 

  如果有很多线程,每个线程占用的CPU都不多,那基本是正常的。

 

  如果死锁:

 

  jstack -l pid 多执行几次,统计一下stack中总是在等待哪些锁,可以对锁id进行排序统计(sort uniq grep)

 

  上面列出来的都是明显的瓶颈,最可怕的是哪里都没有明显的瓶颈,哪里都要偷一点点资源走,这是可以试试JProfiler这样更专业一点的工具,同时要配合自己对业务的了解来解决。

 

  Java内存的问题,如果有内存泄露(就是执行完fgc/old gc后不能回收的内存不断地增加):

 

  快速解决:jmap -histo:live pid 来统计所有对象的个数(String/char/Integer/HashEntry 这样的对象很多很正常,主要是盯着你们公司的包名下的那些对象)

 

  每隔一分钟执行一次上面的命令,执行5次以上,看看你们公司报名下的对象数量哪个在一直增加,那基本上就是这个对象引起了泄露;

 

  用课堂上的工具HouseMD来动态监控创建这个对象的地方(一般来说很多时候创建了这些对象把他们丢到一个HashMap然后就不管了),分析一下有没有释放!

 

  上面的方法实在没法定位就用: jmap -dump 导出整个内存(耗时间,需要很大的内存的机器才能对这个导出文件进行分析,会将JVM锁住一段时间)

 

  在Eclipse的插件EMA中打开这个文件(2G的物理文件需要4G以上的内存,5G以上的需要将近20G的内存来分析了)

官方网站:http://www.cqitp.com

 
重庆汉昌移动互联网学校
蒋小均 先生 (技术顾问)  
电  话: 023-61206819
传  真: 023-61206819
移动电话:
公司地址: 中国重庆渝中区重庆市渝中区上清寺太平洋广场A座3楼
邮  编: 400015
公司主页: http://mat2015.qy6.com.cn(加入收藏)
 



其它商业信息
 1 直接到第
20 条信息,当前显示第 1 - 20 条,共 1

公司首页 | 公司介绍 | 产品展示 | 供求商机 | 诚信档案 | 联系方法 | 加入收藏
重庆汉昌移动互联网学校 公司地址:中国重庆渝中区重庆市渝中区上清寺太平洋广场A座3楼
蒋小均 先生 (技术顾问) 电话:023-61206819 传真:023-61206819
免责声明: 以上所展示的信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责,企业录对此不承担任何责任。如有侵犯您的权益,请来信通知删除。

机械 仪器 五金 电子 电工 照明 汽摩 物流 包装 印刷 安防 环保 化工 精细化工 橡塑 纺织 冶金 农业 健康 建材 能源 服装 工艺品 家居 数码 家电 通讯 办公 运动、休闲 食品 玩具 商务 广告 展会 综合
提供服务支持 © 企业录 | 移动端