Java内存分析工具--IDEA的JProfiler和JMeter插件
一、JProfiler简介
JProfiler 是一个商业授权的Java剖析工具,由EJ技术有限公司,针对的Java EE和Java SE应用程序开发的。它把CPU、执行绪和内存的剖析组合在一个强大的应用中。JProfiler可提供许多IDE整合和应用服务器整合用途。JProfiler的是一个独立的应用程序,但其提供Eclipse和IntelliJ等IDE的插件。它允许两个内存剖面评估内存使用情况和动态分配泄漏和CPU剖析,以评估线程冲突。JProfiler直觉式的GUI让你可以找到性能瓶颈、抓出内存漏失(memory leaks)、并解决执行绪的问题。它让你得以对heap walker作资源回收器的root analysis,可以轻易找出内存漏失;heap快照(snapshot)模式让未被参照(reference)的对象、稍微被参照的对象、或在终结(finalization)队列的对象都会被移除;整合精灵以便剖析浏览器的Java外挂功能。
二、JMeter简介
三、IDEA安装JProfiler插件
点击install安装该插件,安装完成后需要重启IDEA,左边插件是通过jprofiler启动tomat,并同时启动jprofiler监测。右边工具是将jprofiler直接绑定到一个活动的JVM中,即时进行监测。在通过profiler启动tomcat的过程中,会出现如图所示需要选择的界面,按照需求选择,我这里是进行java class的jvm性能测试,所以在Initial recording profile中选择 CPU recording ,其他按照默认配置即可。
当然你也可以进行filter过滤设置、jdbc监测设置等。
选择完成后,profiler即进行JVM监控操作,这里可以大致的看到内存、GC垃圾回收、Class、线程、以及CPU加载情况的监控。
现在我们重点监控CPU加载情况监控。选中左边CPU views ,点击Attach可以修改关联项。
点击jmeter.bat,启动jmeter。创建线程组,右键线程组,添加-->配置元件-->HTTP信息头管理器+HTTP请求 添加-->断言-->响应断言 添加-->监听器-->查看结果树+聚合报告,你也可以按照你的测试要求添加其他需要的组件,我这里是对rest的接口进行测试,所以这些已经可以满足要求。Http消息头设置 contentType设置为需要的json格式 application/json。在http请求中填写你的需要测试的服务IP/端口/接口访问路径/请求方式/请求协议等信息。数据如果是post方式提交,请求的参数填写至Body Data中即可。
线程组线程数根据需要进行设定
通过点击工具中部的右三角图标启动jmeter测试。启动完成后,我们可以通过jprofiler的CPU加载视图查看对应的method默认级别的加载耗时性能结果。以tree的形式展示,通过这样,你可以按照耗时进行有针对性的性能优化。同时,你可以通过jmeter的查看结果树界面查看每次请求的相应返回结果信息。jmeter会根据你的断言判断该请求是否成功。可以通过聚合报告查看整体测试的失败率等信息。通过配合线程组的同时启动线程量,以及响应时间等信息来进行压测,并出具测试报告。
原文地址:https://blog.csdn.net/qq_19674905/article/details/80824858
最新文章
- Javascript 严格模式详解
- 如何获得APP内部资源
- unity, Shader.Find的一个坑
- java入门 第三季2
- 中兴F412光猫超级密码破解、破解用户限制、关闭远程控制、恢复路由器拨号
- MySQL 错误
- PAT乙级 1030. 完美数列(25)
- 在Windows7上搭建Cocos2d-x 3.2alpha0开发环境
- JavaScript的this简单实用
- Java学习感受
- python基础知识一
- 不包含SDK头文件, 补全API定义
- Chapter 15_3 使用环境
- Java语句语法
- sudo:无法解析主机 解决方案
- C++编译器对属性和方法的处理机制
- java第一天 数据类型、变量的命名、类型的转换
- java news website
- alibaba/canal 阿里巴巴 mysql 数据库 binlog 增量订阅&;消费组件
- DataGridView加载gif图片
热门文章
- win下在虚拟机安装CentOS 7 Linux系统
- 2017年Android SDK下载安装及配置教程(附带原文地址)
- java 2类与对象[学堂在线]
- js图片压缩和上传并显示
- Python 使用BeautifulSoup模块抽取数据
- Python subn函数
- 【CF Manthan, Codefest 17 B】Marvolo Gaunt's Ring
- Unicode, UTF-8, GBK, ASCII的区别
- PLAY2.6-SCALA(八) comet
- Maven学习总结--maven入门(一)