软件性能分析与优化详解
一、性能测试理论基础
随着互联网的高速发展,无论过去、现在还是将来,性能测试和性能分析永远都是一个无法回避的话题。一个网站在上线后,性能的好坏会直接影响用户的体验,没有哪个用户可以忍受打开一个网站需要很长时间才能响应。所以性能测试和性能分析是任何一个网站、系统或者软件在上线前都需要去关注的核心问题。
性能测试除了为获取性能指标外,更多是为了发现性能瓶颈和性能问题,然后针对性能问题和性能瓶颈进行分析和调优
1、性能测试需求
性能可以理解为一个系统实现其功能的能力,从宏观上可以描述为系统能够稳定运行、高并发访问时系统不会出现宕机、系统处理完成用户请求需要的时间、系统能够同时支撑的并发访问量、系统每秒可以处理完成的事务数等;从微观上可以描述为处理每个事务的资源开销,资源的开销可以包括CPU、磁盘I/O、内存、网络传输带宽等,甚至可以体现为服务器连接数、线程数、JVM Heap等的使用情况,也可以表现为内存的分配回收是否及时、缓存规则的命中率等。
性能到底有多重要呢?我们可以举一个网站访问的例子来说明,一个网页的加载速度如果超过4~5秒,可能25%的人会选择放弃。百度的搜索结果响应时间慢0.4秒,一天的搜索量可能会减少千万次左右。所以一个系统、一个网站的性能决定了其能够支撑业务的能力。
不同的群体对性能的理解可能会存在很大的差异,普通的用户更加关心响应时间和稳定性。
- 访问页面响应还要让我等多久才能加载出来?
- 为什么有时候会访问失败?为什么会出现错误502?
架构师和工程师可能更加关心架构设计和代码编写的性能:
- 应用架构设计是否合理?
- 技术架构设计是否合理?
- 数据架构设计是否合理?
- 部署架构设计是否
软件性能分析与优化详解相关推荐
- MySQL之SQL优化详解(二)
目录 MySQL之SQL优化详解(二) 1. SQL的执行顺序 1.1 手写顺序 1.2 机读顺序 2. 七种join 3. 索引 3.1 索引初探 3.2 索引分类 3.3 建与不建 4. 性能分析 ...
- lucene.NET详细使用与优化详解
lucene.NET详细使用与优化详解 http://www.cnblogs.com/qq4004229/archive/2010/05/21/1741025.html http://www.shan ...
- 网易考拉海购Dubbok框架优化详解
网易考拉海购Dubbok框架优化详解 摘要:微服务化是当前电商产品演化的必然趋势,网易考拉海购通过微服务化打破了业务爆发增长的架构瓶颈.本文结合网易考拉海购引用的开源Dubbo框架,分享支持考拉微服务 ...
- mysql索引linke和等于_MySQL之SQL优化详解(三)
摘要: 致索引失效而转向全表扫描存储引擎不能使用索引中范围条件右边的列mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描isnull,isnotnull也无法使用索引l ...
- mysql ssd 性能测试 写入_MySQL服务器的SSD性能问题分析和测试详解
[问题] 我们有台HP的服务器,SSD在写IOPS约5000时,%util达到80%以上,那么这块SSD的性能究竟有没有问题,为解决这个问题做了下面测试. [工具] blktrace是linux下用来 ...
- java 生成dump_java dump文件怎么生成和分析-JMAP用法详解
jmap是java自带的工具 1. 查看整个JVM内存状态 jmap -heap [pid] 2. 查看JVM堆中对象详细占用情况 jmap -histo [pid] 3. 导出整个JVM 中内存信息 ...
- Android Telephony分析(五) ---- TelephonyRegistry详解
本文紧接着上一篇文章<Android Telephony分析(四) -- TelephonyManager详解 >的1.4小节. 从TelephonyRegistry的大部分方法中: ...
- Android Telephony分析(三) ---- RILJ详解
前言 本文主要讲解RILJ工作原理,以便更好地分析代码,分析业务的流程. 这里说的RILJ指的是RIL.java (frameworks\opt\telephony\src\java\com\And ...
- Android Telephony分析(二) ---- RegistrantList详解
前言 本文主要讲解RegistrantList的原理,以及如何快速分析RegistrantList相关的代码流程. 在Telephony模块中,在RIL.Tracker(ServiceStateTr ...
- python实现单例模式的几种方式_基于Python中单例模式的几种实现方式及优化详解...
单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在.当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场. ...
最新文章
- python布局管理_PyQt5每天必学之布局管理
- 9. 混合模型和EM(3)
- 【机器学习基础】数学推导+纯Python实现机器学习算法10:线性不可分支持向量机...
- word List18
- 存储器间接寻址方式_8086中的数据存储器寻址模式
- 小鱼的游泳时间(洛谷-P1425)
- grafana计算不同时间的差值_大数据时代!如何基于Spark Streaming构建实时计算平台...
- elasticsearch的javaAPI之query
- HenCoder Android 开发进阶: 自定义 View 1-2 Paint 详解
- 一文解析TCP知识体系
- python怎么加图片_python图片加水印
- 购物车程序流程图01
- 【网络】如何判断网络达到瓶颈
- 怎么用dw做html网页模板,使用Dreamweaver制作网页的20个技巧
- 工程伦理 清华慕课网答案
- Python输出 计算器 !
- Moses安装全记录
- PE工具制作(大白菜+U盘启动模式)+系统重装
- 车载USB DVR(行车记录仪)的源码架构浅析(基于AndroiidM)
- httpclient动态代理ip