java 性能测试入门

作为开发,了解性能测试的指标,分类,工具可帮助我们写出性能更好的程序。


不同角色关注的服务性能

用户:用网站的响应速度来衡量网站的性能。打开页面快不快,执行了操作,反应时间快不快。

开发:关注系统处理用户请求的速度。

性能测试需要注意两点:①了解业务具体场景,搞清楚重点要测试的业务。②分析历史数据,可判定哪个接口,服务用的多,做针对性提升,从而提高整个系统的性能。

注意思想:抓住重点!!!抓住重点!!抓住重点!!


性能测试的指标

吞吐量:单位时间内系统处理的请求数量。

衡量吞吐量的参数:

  • QPS(Query Per Second):服务器每秒可以执行的查询次数
  • TPS(Transaction Per Second):服务器每秒处理的事务数(这里的一个事务可以理解为客户发出请求到收到服务器的过程)
  • 并发数:系统能同时处理请求的数目即同时提交请求的用户数目。
  • 响应时间:用户发出请求到用户收到系统处理结果的时间。 2-5-8 原则:2 到 5 秒,页面体验比较好,5 到 8 秒还可接受,8 秒以上很难接受。据统计当网站慢一秒就会流失十分之一的客户。取多次请求的平均响应时间

并发数 = QPS*平均响应时间


常见的性能测试

性能测试:通过测试工具模拟用户请求系统,目的是测试系统的性能是否满足要求。

负载测试:对系统继续加大请求压力,直到服务器的某个资源达到饱和,比如系统缓存不够用或者响应时间不满足要求。测系统上限。

压力测试:不去管系统资源的使用情况,对系统继续加大请求压力,直到服务器崩溃无法再继续提供服务。


常用性能测试工具

后端常用性能测试工具:Apache  JmeterLoadRunner(付费);Galtling(基于 Scala 开发);ab(全称为 Apache Bench ,非常实用)

前端常用:Fiddler:抓包工具,可修改请求的数据,服务器返回的数据,功能强大,是 Web 调试的利器;HttpWatch: 可录制 HTTP 请求信息。


 

常见性能优化方法

  • 系统是否需要缓存?缓存和消息队列用没?
  • 系统架构本身是否有问题?是否分布式?
  • 系统是否存在死锁?
  • 系统是否存在内存泄漏?(Java 自动回收内存很方便,但代码写的不好会造成内存泄漏)
  • 数据库索引使用是否合理?
  • 高并发业务有无特殊处理?
  • 数据库设计是否合理?
  • 系统用到的算法是否还能优化?
  • 项目使用的 Redis 缓存多大?服务器性能如何?用的是机械硬盘还是固态硬盘?

 

  • 19
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值