`

性能的一些基本概念和原则

阅读更多

参考:《Thinking Clearly about Performance》

 

两个指标

响应时间:执行一个任务所耗费的时间

吞吐量在指定的单位时间内执行任务的个数

 

 

响应时间和吞吐量“一般”是倒数关系

(真实关系比较复杂)

> 如果每秒吞吐量是1000,平均响应时间不一定是0.001秒。因为可能是有1000个并行通道,每个通道执行一个任务,响应时间是1秒。

 

> 如果响应时间是0.001秒,每秒吞吐量有可能100都达不到。因为请求可能来自不同的用户,请求之间不是完美连续的,可能有资源竞争等各种原因。

 

所以两者都得测量

 

 

平均响应时间并不能说明一切

平均值相同的情况下:

> 如果各响应时间相差较大(方差大),可能会导致业务无法容忍那些大于平均值的时长。

 

> 但也有可能业务要求某些任务的响应时间极短,同时容许个别任务可以稍微花费较长时间。

 

问题诊断

首先确定具体期望达到的性能目标,确定这个目标是用户真实了解并期望的。

> 用序列图展示流程

 

> 使用专业的测量评估工具(Profiler),找出时间花在哪部分,哪部分的耗时可以接受。根据 Profiler 的结果,估算应该能达到的性能目标。

- 阿姆达尔定律

系统中对某一部件采用更快执行方式所能获得的系统性能改进程度,取决于这种执行方式被使用的频率,或所占总执行时间的比例。

 

- 评估每项改进所需成本。评估可能会不准确,可能会有一些关键点未考虑到,可能破坏原有设计,引发其它部分的性能问题。

 

- 记录改进的历史。包括期望效果,实际结果等。

 

- 单个子程序在不同场景性能表现分布不均匀。对某些被大量调用的子程序进行改造不一定能获得预期效果。可能单次调用耗时可以减少一半,但由于每次调用情况可能相差很大,这些调用的总体耗时并不一定能减少一半。

 

- 效率

* 关注业务最需要改进的地方。

* 在不牺牲业务功能的情况下,去掉冗余的操作/调用。

* 改进程序周边的环境(不合理的设计、硬件配置等)。(必要时减少系统工作量)

- 负载

(开发人员不能检测出所有性能问题的原因之一)

* Queuing Delay

各硬件(CPU、内存、磁盘等)有各自的性能拐点。

* Coherency Delay

为保持一致性引发的延迟,包括各种锁。(很难保证性能测试已验证该类延迟不会影响最终服务。)

 

 

测量方法

(吞吐量比较容易测得,准确测得响应时间比较困难。)

最好是测量真正需要的,而不是那些容易测量的替代数据。

 

 

性能只有在产品环境里才能真正体现

之前的阶段应该考虑到是否容易开展性能测试,添加收集性能相关数据的代码。

分享到:
评论

相关推荐

    压测性能测试培训(2022-02-16 性能测试培训) 压缩文件包含 【JMeter基础培训、WEB网站优化、性能测试知识分享】

    性能测试的基本概念 性能测试指标 服务器指标 网络指标 关键性能指标 性能测试的环境条件 性能测试分析、调优整体框架 性能测试优化实施策略 性能分析原则 性能调优的注意事项 第二部分,关于WEB网站优化相关知识点...

    利用测试概念进行代码设计时的七条基本原则[1]

    概念利用测试概念进行代码设计时的七条基本原则[1]软件测试当设计大型程序的时候,您必须时刻留心不同设计选项对诸如性能和可扩展性这样的特征的影响。随着软件产品的日渐复杂及其无所不在的部署,软件的“可测试性...

    mysql面试题-mysql经典面试题目-数据库的基本概念-SQL语法-事务处理-索引优化-性能调优-mysql-面试题目

    30道经典java面试题 当面试Java开发职位时,以下是另外一些经典的Java面试题供参考: 什么是Java中的面向对象编程(OOP)?列举OOP的原则。 什么是Java中的重载和重写?...列举一些常见的并发类和工具。 什么是Ja

    数据库原理题库.docx

    这些问题涵盖了数据库的基本概念、数据模型、数据库设计、查询语言、事务处理、性能优化等多个方面。通过回答这些问题,学习者能够巩固对数据库原理的理解,培养数据库设计和管理的能力。 数据库原理题库中的问题...

    射频性能测试规范——GSM终端产品(中兴内部资料)

    6.2.3 标杆机、标准样机、金机的概念及选择原则 10 6.2.4 频率误差和相位误差 12 6.2.5 发射机输出功率和突发脉冲定时 12 6.2.6 发射输出频谱 13 6.2.7 参考灵敏度 13 6.2.8 人体感应下的参考灵敏度 14

    免费下载非常详细的 Mysql 面试知识点

    SQL查询优化:了解索引的概念和使用方法,掌握如何优化查询语句以提高数据库性能。 4. 数据库事务和并发控制:了解事务的概念、ACID特性以及并发控制的方法,能够处理并发访问和保证数据的一致性。 5. 数据库...

    高速PCB设计原则及技巧指南

    1、PCB的基本概念 2、避免混合讯号系统的设计陷阱 3、信号隔离技术 4、高速数字系统的串音控制 八、 1、掌握IC封装的特性以达到最佳EMI抑制性能 2、实现PCB高效自动布线的设计技巧和要点 3、布局布线技术的发展

    电子系统设计的基本方法.txt

    3 电子系统设计的基本方法 必须遵循下列原则: 必须遵循下列原则: (1)正确性和完备性原则 (1)正确性和完备性原则 (2)模块化、结构化原则 (2)模块化 模块化、 (3)问题不下放原则 (3)问题不下放原则 (4)高层主导原则...

    液压传动与电液伺服系统

    本书介绍了工程流体力学、液压传动及电液伺服系统的基本原理及应用,着重阐述了流体力学的基本概念、液压元件和系统的分析及设计方法,包装各类液压控制阀、动力机构和伺服阀性能分析与设计原则,机液系统、电液位置...

    2005-2009软件设计师历年真题

     • 安全性基本概念  • 防治计算机病毒、防范计算机犯罪  • 存取控制、防闯入、安全管理措施  • 加密与解密机制  •风险分析、风险类型、抗风险措施和内部控制  5.标准化知识  • 标准化意识、标准化的...

    数据库课程设计.pptx

    - 理解数据库管理系统的基本概念和原理。 - 学会使用数据库设计工具,设计和规划数据库系统。 - 掌握SQL语言,能够进行数据库的查询、更新、删除等操作。 - 学会数据库性能优化和安全管理。 - 能够进行实际的数据库...

    Oracle数据库性能优化的艺术 (文平) 高清PDF扫描版

    8.2 分区技术的基本概念/ 234 8.3 分区表的管理操作 / 238 8.4 分区的技术实现 / 239 第9章 索引定义:索引设置与执行计划 / 260 9.1 索引对象/ 261 9.2 oracle优化器 / 263 9.3 索引的技术指标 / 285 ...

    集群好书《高性能Linux服务器构建实战》 试读章节下载

    10.4 系统性能分析标准和优化原则 10.5 几种典型应用对系统资源使用的特点 10.5.1 以静态内容为主的Web应用 10.5.2 以动态内容为主的Web应用 10.5.3 数据库应用 10.5.4 软件下载应用 10.5.5 流媒体服务...

    《数字IC设计:方法技巧与实践》唐杉,徐强,王莉薇 著

    功能验证的基本概念和方法 随机测试(]Random Test) 衡量功能验证的质量 参考文献 第4章:RTL级设计和仿真概念 RTL代码编写的规则 通用规则 VHDL设计规则 Venlog设计规则 使用HDL检查工具对RTL设计规则进行检查 ...

    202311月最新MySQL-71到精选面试题题及答案涵编程题和存储知识点-20231120.pdf

    覆盖范围:涵盖了MySQL的基本概念、查询语句、索引优化、事务管理等方面。 技术要点:提供了MySQL的核心概念和常用技术要点的总结。 数据类型:介绍了MySQL支持的各种数据类型,如整数、浮点数、字符串等。 查询语句...

    关系型数据库性能体系设计和效率提升.docx

    关系型数据库性能体系,设计和效率提升 1 1 前言 2 1.1目的 2 1.2预期的读者和阅读建议 2 2 数据库模型设计规范 2 2.1 数据库建模原则性规范 2 2.2 实体型之间关系认定规范 2 2.3 范式化1NF的规范 3 2.4 范式化2NF的...

    DBA应遵循的Oracle调优原则.doc

    关于调优可以写整整一本书,不过,为了改善 Oracle 数据库的性能,有一些基本的概念是每个 Oracle DBA 都应该遵从的。 在这篇简介中,我们将简要地介绍以下的 Oracle 主题: -- 外部调整:我们应该记住 Oracle 并...

    计算机体系结构试题及答案

    性能设计和评测的基本原则 1.5.4 CPU的性能 1.6 影响计算机体系结构的成本和价格因素 1.6.1 集成电路的成本 1.6.2 计算机系统的成本和价格 1.7 小结习题一第二章 计算机指令集结构设计 2.1 指令集结构...

    《MySQL 导航:数据库成功的分步指南》

    《MySQL 必知必会》学习笔记,这本书旨在向初学者介绍MySQL数据库的基本概念和操作。它提供了MySQL数据库的基础知识,适用于那些对数据库和SQL语言尚不熟悉的读者。书中内容涵盖了数据库设计、SQL查询、数据的增删改...

    当前最佳实践用于培训 LLM白手起家

    介绍LLM的基本概念、原理和结构,帮助读者了解这一领域的背景和基础知识。详细探讨了各种LLM架构的设计原则和技巧,包括Transformer、GPT系列等。通过了解这些架构,读者可以更好地选择适合自己的模型类型,并根据...

Global site tag (gtag.js) - Google Analytics