使用Jprofiler监控分析案例

一、cpu负载过高:http://localhost:8080/PerfTeach/CpuTopServlet?id=1

cpu消耗高的可能原因
1、使用了复杂的算法,比如加密、解密
2、压缩、解压、序列化等操作
3、代码bug,比如死循环

dstat监控起来,先看一下资源是否正常,用5个并发跑60秒

CPU:100%

TPS才几百,肯定就有问题

TOP:JAVA占的CPU最多

查看进程,是tomcat

使用jprofiler查看,很明显有个自己写的userToString方法占了19%

打开代码看那个方法:里面有使用Gson对json的转换

json转换组件:Gson、jackson、fastjson,三个组件各有优势,但是从从性能方面来说,Gson性能最差

所以直这个情况只能换组件,fastjson性能最好,建议使用fastjson

二、响应时间长:http://1localhost:8080/PerfTeach/TimeMonitor?id=1

使用jprofiler的方法耗时统计功能,可以统计出每个方法的耗时

50个并发,跑600秒

CPU不高

响应时间300多毫秒,有些慢了,需要优化,一般小于100毫秒,性能算是不错的了,100--500之间,算一般的,500以上,就是很差的

由于没有经过Nginx,所以直接查看tomcat日志里面的响应时间,和jmeter统计出来的差不多,网络没什么问题

重新压一下并且打开jprofiler,看看详细分析,doCalculator方法平均耗了200毫秒,应该优化这个方法

还有一种情况也是需要优化,如doCalculator方法平均用20毫秒,但是调用次数确是其他方法的几倍,造成耗时多

转载于:https://www.cnblogs.com/malinalian/p/10583289.html

性能测试三十九:Jprofiler分析CPU过高和响应时间长的问题相关推荐

  1. 【正点原子MP157连载】第三十九章 LCD驱动实验-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7

    1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...

  2. Python编程基础:第三十九节 面向对象编程Object Oriented Programming

    第三十九节 面向对象编程Object Oriented Programming 前言 实践 前言 到目前为止我们都是函数式编程,也即将每一个功能块写为一个函数.其实还有一种更常用的编程方式被称为面向对 ...

  3. WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形

    原文:WPF,Silverlight与XAML读书笔记第三十九 - 可视化效果之3D图形 说明:本系列基本上是<WPF揭秘>的读书笔记.在结构安排与文章内容上参照<WPF揭秘> ...

  4. [Python从零到壹] 三十九.图像处理基础篇之图像几何变换(镜像仿射透视)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. 【正点原子STM32连载】第三十九章 DS18B20数字温度传感器实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1

    1)实验平台:正点原子MiniPro H750开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=677017430560 3)全套实验源码+手册+视频 ...

  6. 初中计算机水平测试选择题,初中信息技术测试题第三十九套

    原标题:初中信息技术测试题第三十九套 点击标题下「蓝色酷教」可快速关注 选择.判断题 开始客观题答题 操作题 因为微信系统无法完成操作题评分,只能熟悉流程 相关操作试题附件在后面 一.打开本题工作目录 ...

  7. NeHe OpenGL第三十九课:物理模拟

    NeHe OpenGL第三十九课:物理模拟 物理模拟简介: 还记得高中的物理吧,直线运动,自由落体运动,弹簧.在这一课里,我们将创造这一切.   物理模拟介绍 如果你很熟悉物理规律,并且想实现它,这篇 ...

  8. javaweb学习总结(三十九)——数据库连接池

    javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10 ...

  9. 三十九、Java集合中的HashSet和TreeSet

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

最新文章

  1. python3爬虫实例-python3爬虫实例(采集淘宝商品数据)
  2. Android 中基本图像绘制
  3. 【02】把 Elasticsearch 当数据库使:过滤和排序
  4. RabbitMQ的5种队列_消息确认模式_入门试炼_第6篇
  5. Java包装类中的equals方法
  6. 在Windows 10上安装TensorFlow 2.2.0 RC4版
  7. 有哪些指标可以描述两个图(graph)的相似度?
  8. [Linux日记]解决Ubuntu升级出现/boot空间不足问题
  9. css中auto啥意思,CSS中各种auto值的作用总结
  10. 困惑度 | NLP中对困惑度感到困惑?
  11. foxmail邮箱pop3服务器,Foxmail设置POP3邮箱的操作流程
  12. Eclipse与SQL Server 2005 连接
  13. EAN13商品条码数据如何居中显示
  14. lv双肩包尺寸对照表_当红Monogram帆布LV双肩包尺寸究竟有多少?
  15. 哑变量或虚拟变量介绍(dummyvar)
  16. 别忽略国美之争的真正遗产
  17. 罗振宇2018跨年演讲
  18. 书画拍卖系统 php源码,网上拍卖系统,源代码
  19. Windows7 GNS3 模拟路由器成功PING通网外
  20. 输出数组中数字排名(不允许并列排名)

热门文章

  1. centos7 网卡配置vlan_Centos7安装后的一些基础配置
  2. java batik_Batik详解.pdf
  3. ubuntu检查端口是否开启_Ubuntu默认防火墙安装、启用、配置、端口、查看状态相关信息...
  4. apxs php5,安装PHP5和PHP7
  5. chrome 取消常用缩略图_怎么去掉 Chrome 新标签页的缩略图?
  6. 路由器选华硕还是tp_路由器的坑太多,就算写着“千兆”你也要当心丨618选购指南...
  7. 二维分类教案_大班数学二维分类教案
  8. 计算机组装与维修案例分析,计算机组装毕业论文
  9. python新建文件夹口令_Python 口令保管箱
  10. 简述ospf的工作原理_简述洛氏硬度计的工作原理及应用领域