参考:《Thinking Clearly about Performance》
两个指标
响应时间:执行一个任务所耗费的时间
吞吐量:在指定的单位时间内执行任务的个数
响应时间和吞吐量“一般”是倒数关系
(真实关系比较复杂)
> 如果每秒吞吐量是1000,平均响应时间不一定是0.001秒。因为可能是有1000个并行通道,每个通道执行一个任务,响应时间是1秒。
> 如果响应时间是0.001秒,每秒吞吐量有可能100都达不到。因为请求可能来自不同的用户,请求之间不是完美连续的,可能有资源竞争等各种原因。
所以两者都得测量。
平均响应时间并不能说明一切
平均值相同的情况下:
> 如果各响应时间相差较大(方差大),可能会导致业务无法容忍那些大于平均值的时长。
> 但也有可能业务要求某些任务的响应时间极短,同时容许个别任务可以稍微花费较长时间。
问题诊断
首先确定具体期望达到的性能目标,确定这个目标是用户真实了解并期望的。
> 用序列图展示流程
> 使用专业的测量评估工具(Profiler),找出时间花在哪部分,哪部分的耗时可以接受。根据 Profiler 的结果,估算应该能达到的性能目标。
- 阿姆达尔定律
系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。
- 评估每项改进所需成本。评估可能会不准确,可能会有一些关键点未考虑到,可能破坏原有设计,引发其它部分的性能问题。
- 记录改进的历史。包括期望效果,实际结果等。
- 单个子程序在不同场景性能表现分布不均匀。对某些被大量调用的子程序进行改造不一定能获得预期效果。可能单次调用耗时可以减少一半,但由于每次调用情况可能相差很大,这些调用的总体耗时并不一定能减少一半。
- 效率
* 关注业务最需要改进的地方。
* 在不牺牲业务功能的情况下,去掉冗余的操作/调用。
* 改进程序周边的环境(不合理的设计、硬件配置等)。(必要时减少系统工作量)
- 负载
(开发人员不能检测出所有性能问题的原因之一)
* Queuing Delay
各硬件(CPU、内存、磁盘等)有各自的性能拐点。
* Coherency Delay
为保持一致性引发的延迟,包括各种锁。(很难保证性能测试已验证该类延迟不会影响最终服务。)
测量方法
(吞吐量比较容易测得,准确测得响应时间比较困难。)
最好是测量真正需要的,而不是那些容易测量的替代数据。
性能只有在产品环境里才能真正体现
之前的阶段应该考虑到是否容易开展性能测试,添加收集性能相关数据的代码。
相关推荐
### PCB设计基本概念详解 #### 一、层(Layer)的概念 在PCB设计中,“层”的概念至关重要。...通过深入了解这些基本概念,可以帮助设计者更好地掌握PCB设计的核心要点,从而设计出高质量、高性能的PCB产品。
【软件测试基本概念】 软件测试是确保软件质量的关键环节,涉及到对程序和文档的全面验证。软件是由程序(实现特定功能的指令集合)和文档(包括开发、使用和维护过程中的图文资料)组成的。测试过程涵盖了这两部分...
Cache 基本架构与基本概念 cache 是一种高速存储器,位于处理器附近,用于保存运算处理时的一些共有的指令,从而加速运算的速度。... cache 的基本概念包括位置法则、 cache 的性能和 cache 的类型。
在软件设计领域,"69-2-0设计概念与原则1"的标题暗示了我们正在探讨的是关于软件设计的基本概念和原则。这些原则对于创建高效、可维护和可扩展的系统至关重要。在这个主题中,两个关键的概念是偶合性和内聚性。 ...
内容概要:文档主要介绍了PCB设计的基本概念,包括“层”“过孔”“丝印层”“SMD”“网格状填充区和填充区”“焊盘”“各类膜”“飞线”等内容。同时,文档还阐述了PCB设计中应注意的问题,如制作物理边框要精确,...
《轴承公差和配合的基本概念与标注》\n\n在机械设计领域,轴承公差和配合的概念至关重要,它们直接影响到设备的性能和寿命。本文主要阐述了轴承公差与配合的基本概念及其标注方法。\n\n首先,配合制是确定孔与轴之间...
总结起来,计算机系统结构的基本概念涉及计算机性能提升的策略、并行计算的实现、软件与硬件的层次关系以及系统设计中的透明性原则。随着技术的不断进步,理解这些基本概念对于设计高效、灵活的计算机系统至关重要。
本部分属于A类标准,提供基本概念、设计原则和通用方法,是机械安全系列标准的基础。 标准主要内容包括: 1. **范围**:本部分规定了机械设计中实现安全所需的技术原则。它与GB/T 15706.1共同使用,可独立使用或...
首先,我们要理解性能测试工具的基本概念。工具是达成目标的手段,性能测试工具则专门用于测试系统的响应速度、并发能力以及资源利用率。这些工具种类繁多,包括服务器端性能测试工具、前端性能测试工具、移动设备...
并发编程是计算机科学中的核心概念,特别是在多核处理器和分布式系统中显得尤为重要。它涉及到如何在多个任务或线程之间共享资源,同时确保程序的正确性和高效性。本篇文章将深入探讨并发的基础理论,不同并发模型的...
本文将详细阐述软件测试的基本概念、技术、方法、流程和过程。 首先,我们需要理解软件测试的基本概念。软件测试不仅局限于运行代码以检查其功能,而是涵盖了整个软件生命周期中的检查和评审活动,包括对文档、设计...
数据库索引设计原则的基本原则是确保数据库的查询效率和性能。为此,需要遵守以下几点原则: 1.1 基本原则:索引设计应遵守基本原则,即索引列的选择、索引类型的选择、索引的维护等。 1.2 主关键字的约束:主...
本文主要探讨了计算机体系结构中的基本概念,特别是关于硬件、系统软件和应用软件的发展历程,以及计算机性能的评估和优化技术。首先,我们看到了计算机硬件的进步,从80386处理器的出现到IA-64架构的兴衰,再到64位...
以下是对电子系统设计的基本原则和方法的详细阐述: 一、电子系统设计的基本原则 1. 整体性原则:设计电子系统时,需从全局角度考虑,分析各组成部分及其与外部环境的关系。整体原则强调综合分析,以综合为导向,...
物料搬运系统是工业生产中的重要组成部分,它涉及物料在生产过程中的移动、储存和控制。...理解并应用上述基本概念、原则和设备选择方法,能够有效地改善物料流动,降低生产成本,提高企业的竞争力。
开关电源是一种重要的电力转换设备,它能够将一种类型的电能转换为另一种形式,并且具备控制和调节电能的能力。常见的转换形式包括AC/DC、DC/DC、DC...理解这些基本概念和分析方法对于设计和维护开关电源系统至关重要。
软件界面设计和易用性基本原则 软件界面设计是软件开发过程中非常重要的一部分,它直接影响着用户的使用体验和软件的整体质量。好的软件界面设计不仅能提高用户的操作效率,还能减少用户的学习成本和使用成本。 本...