java测试模块耗时,性能测试技巧:java程序cpu耗时分析
hi 大家好,今天飞测团队给大家带来一篇性能测试中java程序cpu耗时分析的技巧,希望对大家有帮助,有疑惑或者错误,欢迎交流和指正。
1概述
对java程序进行性能压测时,经常会出现cpu资源使用高,甚至资源不释放的情况。对于这类性能问题,可以通过jdk自带工具jvm去定位到cpu耗时较高的热点方法,下面就为大家详细介绍如何使用jvm去定位cpu耗时。
2连接jvm
1 开启jvm远程配置
通常连接方式是本地远程访问服务器的java虚拟机。下面以tomcat为例
进入tomat/bin目录,编辑catalina.sh文件,找到JAVA_OPTS,加入以下内容:
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=1085 -Dcom.sun.management.jmxremote
2 打开jvm可视化工具进行连接
进入jdk/bin目录,双击jvisualvm.exe
添加远程主机ip,点击“确认”
添加jmx连接ip:jvm port,点击“确认”。端口为com.sun.management.jmxremote.port=1085
3Jvm cpu耗时分析
进入抽样器页签,点击“CPU”按钮。Jvm会实时打印耗cpu热点方法,按照从大到小进行排序
点击“快照”按钮,生成nps的快照文件。快照会以线程为单位,将每个线程方法以调用树的形式展现出来。使用例子作为具体讲解:
1. 首先让调用树以时间(cpu)倒序排列
2. 找到应用线程(排除系统线程),按照时间一层层递归调用,最终找出最耗时的方法。
从下面截图可以看到,选取排序中第一个应用线程pool-1-thread-2,一层层展开调用数并结合。最后定位到getJedis方法自调用占用cpu时间达到90%,提给开发gg优化即可,是不是很简单
3. getJedis方法主要进行redis计数操作,每调用一次接口,程序会连接redis并做一次+1的逻辑,该方法占用cpu耗时90%。开发需要排查这段代码是否有性能问题,或者redis配置能否优化
坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注、转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期待的方向,有更多兴趣的欢迎切磋,我们微信订阅号,联系方式如下:
推荐文章
java测试模块耗时,性能测试技巧:java程序cpu耗时分析相关推荐
- C/C++程序CPU问题分析
转载地址:http://www.10tiao.com/html/473/201606/2651473094/1.html 程序的CPU问题是另外一类典型的程序性能问题,很多开发人员都受到过程序CP ...
- jmeter的java测试框架_性能测试学习之路 (四)jmeter 脚本开发实战(JDBC JMS 接口脚本 轻量级接口自动化测试框架)...
1.业务级脚本开发 登录脚本->思路:在线程组下新建两个HTTP请求,一个是完成访问登录页,一个是完成登录的数据提交. 步骤如下: 1) 访问登录页 2) 提交登录数据的HTTP PS:对于业务 ...
- sisoftware java测试_SiSoftware理论性能测试10980XE vs 3950X vs 7900X vs 9900K
本帖最后由 jerrytsao 于 2019-11-23 19:14 编辑 转总现在修身养性, 不方便上论坛, 帮贴 https://www.sisoftware.co.uk/2019/11/20/i ...
- java全角数字_JAVA技巧(JAVA全角和半角的转换代码)
实现代码如下: public class change { public static void main(String[] args) { String QJstr="全角转半角DAO&q ...
- dhrystone测试结果_Linux性能测试工具-UnixBench--安装以及结果分析-阿里云开发者社区...
UnixBench unixbench是一个用于测试unix系统性能的工具,也是一个比较通用的benchmark, 此测试的目的是对类Unix 系统提供一个基本的性能指示,很多测试用于系统性能的不同方 ...
- Vscode java 环境搭建及使用技巧
Vscode java 环境搭建及使用技巧 文章目录 Vscode java 环境搭建及使用技巧 java环境要求 vscode环境要求 vscode java文件的建立 使用 code-runner ...
- Java SE 9:使用IntelliJ IDE开发和测试模块之间的隐式可读性(第5部分)
I have already discussed many theoretical concepts about "Java 9 Module System" and also d ...
- java中测试计算能力_CPU运算性能测试、JAVA性能创纪录_三星 I728_手机其它OS-中关村在线...
CPU运算性能测试: 我们采用CPU测速软件(主要考察运算能力包括:整数加法.整数乘法.浮点加法和浮点乘法)来测试三星i728的CPU运算速度并与Qualcomm 7200 400MHz的HTC Ty ...
- 软件性能测试分析与调优实践之路-Java应用程序的性能分析与调优-手稿节选
Java编程语言自从诞生起,就成为了一门非常流行的编程语言,覆盖了互联网.安卓应用.后端应用.大数据等很多技术领域,因此Java应用程序的性能分析和调优也是一门非常重要的课题.Java应用程序的性能直 ...
- java基础的综合能力体现,测试你适不适合做程序员
想入行,别着急,测试下自己到底适不适合入行,你跟程序员之间也许就只差个测试. 测试链接: https://www.bilibili.com/video/av52519027 根据本人多年从业以及学习经 ...
最新文章
- winform如何保持TreeView节点展开和折叠的状态
- java操作字符串的工具类StringUtil
- 内存分段分页机制理解_深入理解虚拟机,JVM高级特性-自动内存管理机制
- 系统:Centos 7.2 内核3.10.0-327.el7.x86_64 # 内核需要高于2.6.32
- SQL.变量、运算符、if、while
- 卷积神经网络(CNN)之MNIST手写数字数据集的实现
- 文档级关系抽取方法,EMNLP 2020 paper
- hdu 1284 钱币兑换问题
- 命令让手机临时root_Linux 最常用命令(简单易学,但能解决 95% 以上的问题)
- python给定dna等分成两个序列_分析DNA序列中的串联重复序列
- 测井解释-泥岩-煤层-砂岩-石灰岩-白云岩-硬石膏-岩盐-水
- WPA-PSK无线网络破解原理与过程
- 战场地图上的 Faked Shadow 基本实现
- C# 委托、匿名委托、Lambda表达式详解
- S32K144(2)时钟配置
- python编写一个名片_详解Python做一个名片管理系统
- 解决 The resulting partition is not properly aligned for best performance
- MYSQL5.7设置账号密码复杂度、密码有效期、账号锁定等策略
- 又见block(一):block是什么?
- 未来时代量计算机科幻游戏,“八本科幻未来时代小说”到那个我们可以想象的极限,享受科幻美...