欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

计算机体系结构]响应时间和吞吐量 | 相对性能 | 计算 CPU 时间 | 指令技术和 CPI | T=CC/CR,CC=IC*CPI

最编程 2024-05-04 10:36:46
...

 

网络异常,图片无法展示
|
 



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:

上一篇: 在海量数据中查找前 k 个大数(topk 问题),一篇教你如何在海量数据中查找前 k 个大数的文章

下一篇: 在 linux 下查看依赖 So 的库