【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI

简介: 【计算机架构】响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术与 CPI | T=CC/CR, CC=IC*CPI

   



0x00 响应时间和吞吐量(Response Time and Throughput)

响应时间 (Response time):完成任务所需的时间

吞吐量 (Throughput):每个单位时间内完成的总工作量 (比如: tasks/transactions... per hours)

存在多种因素可以对响应时间和吞吐量造成影响,包括但不限于:

  • 处理能力:通过升级到更快的处理器或添加更多处理器,可以减少响应时间并增加吞吐量。这是因为更快或更强大的处理器可以在更短的时间内处理更多的任务。
  • 系统负载:如果系统过载,处理过多的任务或用户,将会对响应时间和吞吐量产生负面影响。这是因为系统可能无法处理工作负荷,导致响应时间更长,吞吐量降低。
  • 网络延迟:如果网络延迟较高,响应时间和吞吐量可能会受到影响。这是因为数据传输需要更长的时间,从而导致响应时间变长和吞吐量降低。

换更快的处理器?添加更多的处理器?本章我们更关注的是 响应时间 (Response time) 。

0x01 相对性能(Relative Performance)

📚 定义:性能 =  1 / 执行时间

倍:

💭 举个例子:运行程序所需时间,在 机器上为 10s,在 机器上为 15s

因此, 快 1.5 倍。

0x02 执行时间测量(Measuring Execution Time)

执行时间测量 (Measuring Execution Time) 指的是在计算机程序中测量代码执行所需的时间。这通常是通过在代码开始和结束时记录时间戳来实现的,然后计算时间戳之间的差异来计算程序执行所需的时间。

执行时间测量通常是性能优化和调试代码的重要工具。通过测量程序中不同部分的执行时间,开发人员可以确定哪些部分需要进行优化,以使程序更加高效。

在实际应用中,执行时间测量可以使用多种不同的技术和工具来实现,例如内置的计时器函数、性能分析工具、代码覆盖率工具等等。不同的方法适用于不同的场景和需求。

总的反应时间 (Elapsed time):

  • 总响应时间,包括所有方面 (Processing, I/O, OS overhead, idle time)
  • 确定系统性能

CPU 时间 (CPU time):

  • 用于处理给定作业的时间 (Discounts I/O time, other jobs’ shares)
  • 包括用户 CPU 时间和系统 CPU 时间
  • 不同的程序受 CPU 和系统性能的影响不同

0x03 CPU 时钟(Clocking)

CPU Clocking(CPU 时钟)指的是计算机 CPU 内部的时钟系统。这个时钟系统会以固定的速率来发出脉冲信号,这些信号会让 CPU 的不同部件在每个时钟周期内执行相应的操作。

数字硬件的操作受到固定速率时钟的控制:

时钟周期 (Clock period):时钟信号一个完整的循环所需要的时间。

时钟频率 (Clock Rate):每秒钟时钟信号产生的周期数。

0x04 计算CPU时间(T=CC/CR)

性能可以通过减少时钟周期数、增加时钟速度来改善。

硬件设计人员通常需要在时钟速度和时钟周期数量之间进行权衡。

🔺 CPU Time 计算公式如下:

CPU 时间 =CPU 时钟周期数 × 时钟周期

                =CPU 时钟周期数 ÷ 时钟频率

📜 简化记忆:

  • 求 CPU 时间:
  • 求时钟频率 (Clock Rate) :
  • 求时钟周期 (Clock Cycle) :

💭 举个例子:

计算机 A 有 2GHz 的时钟, 10s 的CPU 时间,请设计计算机 B,目标达到 10s 的 CPU 时间。可以使用更快的时钟,但会导致 1.2 × 时钟周期,问计算机 B 的时钟应该多快?

💡 解答:已知 计算

* 根据上述公式 那么

根据题意,使用更快时钟导致 ,并且目标 CPU 时间 ,可列出公式:

此时我们需要计算 A 的时钟周期,根据公式 ,那么时钟周期

此时我们已经得到了 ,带入即可计算出

0x05 指令计数 IC 和 每条指令所需的时钟周期数 CPI

(Instruction Count),指的是 指令计数

(Cycle Per Instrution),指的是 每条指令所需的时钟周期数。即 平均执行周期数

是指在一个程序中,每个时钟周期所执行的平均指令数。这两个概念都是计算机性能评估中的关键指标。通过减少指令计数或降低 CPI,可以提高计算机系统的性能。

📃 简化记忆:

Execution time = (Instruction count * CPI) / Clock rate

程序的指令计数是由程序本身、指令集架构 (ISA) 和编译器所决定的。每个指令的平均时钟周期数取决于CPU硬件。如果不同的指令具有不同的CPI,则平均 CPI 受指令组合的影响。

💭 CPI 计算例子:

计算机 A 的周期时间 = 250ps,CPI = 2.0,计算机 B 的周期时间 为 500ps,CPI = 1.2

ISA 相同,哪台计算机更快?快多少?

💡 题解:根据题意得知:

既然要比谁更快,那么我们分别计算出 A, B 的 CPU Time:

,因此 A 速度更快。

下面计算快多少:

0x06 关于CPI 的更多细节

如果不同的指令类别需要不同的时钟周期数:

加权平均 CPI (Avg):

💭 例子:Alternative compiled code sequences using instructions in classes A, B, C:

💡 解读:Sequence 1 中  

根据公式:

再根据图表给出的 IC, CPI 即可计算出 Clock Cycles:

然后通过公式计算平均:

0x07 性能摘要(Performance Summary)

性能摘要 (Performance Summary) 是指对计算机系统、软件或应用程序性能进行评估、分析和总结的过程。在性能摘要中,可以考虑多种性能指标,如执行时间、吞吐量、响应时间、负载等。通常,性能摘要的目的是发现瓶颈、评估系统的优化潜力、指导系统设计和优化、以及进行比较评估等。在实践中,性能摘要是计算机系统开发和维护中非常重要的一环,可以帮助提高系统的性能、可靠性和稳定性。

性能取决于 算法 (影响 IC,可能影响 CPI)、编程语言 (影响 IC,CPI)、编译器(影响 IC,CPI)、指令集架构(影响 IC,CPI,Tc)。

🔺 计算公式总结:

📌 [ 笔者 ]   王亦优
📃 [ 更新 ]   2022.3.
❌ [ 勘误 ]   /* 暂无 */
📜 [ 声明 ]   由于作者水平有限,本文有错误和不准确之处在所难免,
              本人也很想知道这些错误,恳望读者批评指正!

📜 参考资料 

C++reference[EB/OL]. []. http://www.cplusplus.com/reference/.

Microsoft. MSDN(Microsoft Developer Network)[EB/OL]. []. .

百度百科[EB/OL]. []. https://baike.baidu.com/.

相关文章
|
7月前
|
存储 调度 C++
16 倍性能提升,成本降低 98%! 解读 SLS 向量索引架构升级改造
大规模数据如何进行语义检索? 当前 SLS 已经支持一站式的语义检索功能,能够用于 RAG、Memory、语义聚类、多模态数据等各种场景的应用。本文分享了 SLS 在语义检索功能上,对模型推理和部署、构建流水线等流程的优化,最终带给用户更高性能和更低成本的针对大规模数据的语义索引功能。
574 66
|
9月前
|
存储 数据挖掘 BI
2-5 倍性能提升,30% 成本降低,阿里云 SelectDB 存算分离架构助力波司登集团实现降本增效
波司登集团升级大数据架构,采用阿里云数据库 SelectDB 版,实现资源隔离与弹性扩缩容,查询性能提升 2-5 倍,总体成本降低 30% 以上,效率提升 30%,助力销售旺季高效运营。
548 9
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
11月前
|
人工智能 API 数据安全/隐私保护
Apifox 与 Apipost 的 API 文档引擎对比:底层架构、性能与可扩展性分析
深入探索市场上两大主流API工具——Apifox和Apipost的文档能力时,发现了令人惊讶的差距。这不仅仅是功能多寡的问题,更关乎开发效率与团队协作的质变。
|
SQL 缓存 分布式计算
vivo 湖仓架构的性能提升之旅
聚焦 vivo 大数据多维分析面临的挑战、StarRocks 落地方案及应用收益。 在 **即席分析** 场景,StarRocks 使用占比达 70%,查询速度提升 3 倍,P50 耗时从 63.77 秒缩短至 22.30 秒,查询成功率接近 98%。 在 **敏捷 BI** 领域,StarRocks 已完成 25% 切换,月均查询成功数超 25 万,P90 查询时长缩短至 5 秒,相比 Presto 提升 75%。 在 **研发工具平台** 方面,StarRocks 支持准实时数据查询,数据可见性缩短至 3 分钟,查询加速使 P95 延迟降至 400 毫秒,开发效率提升 30%。
vivo 湖仓架构的性能提升之旅
|
8月前
|
存储 JSON 数据处理
ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
随着越来越多企业在实际业务中使用 ClkLog,数据规模和分析需求也不断提升,部分用户日活已经超过10万,为了顺应这一趋势,ClkLog 秉持 “开放透明、持续演进”的理念,推出了迄今为止最重要的一次性能优化升级。新版本在大规模数据处理与复杂查询场景中,性能表现实现了跨越式提升。经过多轮研发与严格测试,新版本现已正式上线:在原有付费版 1.0 的基础上架构全面升级,并同步发布全新的 2.0 版本。为用户带来更强的性能与更广的适用场景。
|
9月前
|
存储 弹性计算 网络协议
阿里云服务器ECS实例规格族详细介绍:计算型c9i、经济型e和通用算力u1实例CPU参数说明
阿里云ECS实例规格族包括计算型c9i、经济型e和通用算力型u1等,各自针对不同场景优化。不同规格族在CPU型号、主频、网络性能、云盘IOPS等方面存在差异,即使CPU内存相同,性能和价格也不同。
900 0
|
11月前
|
关系型数据库 MySQL 分布式数据库
Super MySQL|揭秘PolarDB全异步执行架构,高并发场景性能利器
阿里云瑶池旗下的云原生数据库PolarDB MySQL版设计了基于协程的全异步执行架构,实现鉴权、事务提交、锁等待等核心逻辑的异步化执行,这是业界首个真正意义上实现全异步执行架构的MySQL数据库产品,显著提升了PolarDB MySQL的高并发处理能力,其中通用写入性能提升超过70%,长尾延迟降低60%以上。
|
11月前
|
存储 缓存 分布式计算
高内存场景必读!阿里云r7/r9i/r8y/r8i实例架构、性能、价格多维度对比
阿里云针对高性能需求场景,一般会在活动中推出内存型r7、内存型r9i、内存型r8y和内存型r8i这几款内存型实例规格的云服务器。相比于活动内的经济型e和通用算力型u1等实例规格,这些内存型实例在性能上更为强劲,尤其适合对内存和计算能力有较高要求的应用场景。这些实例规格的云服务器在处理器与内存的配比上大多为1:8,但它们在处理器架构、存储性能、网络能力以及安全特性等方面各有千秋,因此适用场景也各不相同。本文将为大家详细介绍内存型r7、r9i、r8y、r8i实例的性能、适用场景的区别以及选择参考。

热门文章

最新文章