性能的测量(COD Section 1.6)

cod,section · 浏览次数 : 1

小编点评

## 性能评价的不同方法 性能评价有很多方法,以下是其中一些主要的例子: * **响应时间 (response time)**:代表开始一个任务到该任务完成需要的总时间,包括硬盘访问、内存访问、I/O 活动、操作系统开销和 CPU 执行时间。 * **吞吐率 (band width)**:在给定时间内完成的任务数量。 * **CPU 执行时间 (CPU time)**: CPU 上运行的时间,不包括等待 I/O 占用的时间。 * **用户 CPU 时间 (user CPU time)**:用于用户程序的 CPU 执行时间。 * **系统 CPU 时间 (system CPU time)**:用于系统程序的 CPU 执行时间。 ## 计算机用户和设计者的角度描述性能的度量标准 * **响应时间**:用户更关注任务完成的效率,因此通常采用响应时间的测量方法。 * **吞吐率**:数据中心管理者更关注系统吞吐能力,因此通常采用吞吐率的测量方法。 * **CPU 执行时间**:用户更关注任务的执行效率,因此通常采用 CPU 执行时间的测量方法。 ## 性能度量标准之间的联系 性能度量标准之间存在一些联系,例如: * 用户 CPU 时间是用户执行任务所需时间的总和,因此与响应时间相等。 * 系统 CPU 时间则是系统执行所有任务所需的总时间,因此与响应时间相等。 * 吞吐率等于用户 CPU 时间与系统 CPU 时间之和。 ## 经典的处理器性能公式 CPU 执行时间公式可以用来描述 CPU 时间: **CPU 执行时间 = CPU 时钟周期数 / 时钟频率** 其中: * **CPU 执行时间**:CPU 运行的时间。 * **CPU 时钟周期数**:处理器每秒钟完成的指令数量。 * **时钟频率**:系统运行的频率。 该公式表明,我们可以通过执行所需的 CPU 时钟周期数或缩短时钟周期长度来改进性能。 **指令数 = CPU 执行时间 / CPU 时钟周期数** 这个公式可以用来比较不同指令系统的性能。

正文

Performance Evaluation 性能的测量

性能的评价是具有挑战性的。本节将介绍性能评价的不同方法,然后从计算机用户和设计者的角度描述性能的度量标准,最后分析它们之间的联系,并提出经典的处理器性能公式。

1. 性能的定义

个人计算机用户对降低**响应时间 (response time) **感兴趣:它代表开始一个任务到该任务完成需要的总时间,包括硬盘访问、内存访问、I/O 活动、操作系统开销和 CPU 执行时间。

数据中心的管理者通常对 吞吐率/带宽 (band width) 感兴趣——在给定时间内完成的任务数量。因此,在大多数时候,我们需要对个人移动设备采用不同的应用程序作为评测基准,并采用不同的性能度量标准。

如果考虑响应时间,那么就有 \(性能=\frac{1}{执行时间}\)

2. 性能的度量

尽管我们都知道时间是度量计算机性能的标准,但其实它可以用不同的方式来定义,这取决于我们所计数的内容。如果在一个处理器同时运行多个程序的情况下,系统可能更侧重于优化吞吐率,而不是致力于将单个程序的执行时间变得最短。因此,我们需要区分运行自己任务的时间和一般的运行时间,于是就有 CPU 执行时间 来加以区分,只表示 CPU 上运行的时间,不包括等待 I/O 占用的时间。还可以分为用于用户程序的时间和操作系统为其执行相关任务花去的时间,分别称为 用户 CPU 时间和系统 CPU 时间

几乎所有的计算机构建都需要时钟,它确定各类事件在硬件中何时发生。这些离散时间间隔被称为 时钟周期数

3. CPU 性能及其度量因素

一个最简单的公式可以帮我们考虑 CPU 时间:

\[\text{CPU}\ 执行时间=\frac{\text{CPU}\ 时钟周期数}{时钟频率} \]

这个公式表明,我们可以通过执行所需的 CPU 时钟周期数或缩短时钟周期长度来改进性能。

4. 指令性能

上述性能公式并没有设计指令的数量,但其实我们清楚,执行时间必然依赖于程序中的指令数。一个简单的想法能帮我们改写 CPU 执行时间:

\[CPU\ 时钟周期数=程序指令数\cdot指令平均时钟周期数 \]

后者简称为 CPI,可以帮我们在相同指令系统下比较性能。

5. 经典的 CPU 性能公式

根据上面的内容,可以方便地写出:

\[CPU\ 时间=指令数\cdot CPI\cdot 时钟周期长度 \]

\[CPU\ 时间=\frac{指令数\cdot CPI}{时钟频率} \]

如果确定这些因素的值呢?我们可以通过运行程序来测量 CPU 的执行时间,并且说明书中通常有时钟周期长度,难以测量的是指令数和 CPI。当然,如果确定了时钟频率和 CPU 执行之间,我们只需要知道指令数和 CPI 中其中之一就能算出另一个了。

指令数可以通过体系结构仿真器来获取,而大多数处理器中的硬件计数器也可以用来测量执行的指令数、平均 CPI 等信息。另外, 指令数量完全取决于计算机体系结构,因而即便我们不知道具体实现,也可以测量指令数。但是 CPI,其实和计算机的各种细节都是息息相关的。

须知,只有一种因素去评价性能是危险的,必须考虑全部三个因素才能确定执行时间。如果某个因素相同,则需要考虑不同的因素。

参考资料

计算机组成与设计(硬件/软件接口)1.6 性能

与性能的测量(COD Section 1.6)相似的内容:

性能的测量(COD Section 1.6)

如何评定性能?简单的公式,深邃的思想

[转帖]netperf - 网络测试工具

1. 概述 Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能

.Net性能测试工具BenchmarkDotNet学习

.Net性能测试工具BenchmarkDotNet学习 BenchmarkDotNet 是一个用于性能基准测试的开源框架。它可以让开发人员编写简单易懂的代码,并测量和分析这些代码的性能表现,从而帮助开发人员优化其代码,以达到更高的性能和更好的效率。 源码地址:https://github.com/d

探索Lighthouse性能分数计算背后的奥秘

作为开发我们都知道,页面性能很重要,一个性能良好的页面可以给用户带来非常好的用户体验。那么,怎么能知道自己写的页面性能是好是坏呢? Lighthouse 是Chrome提供给开发者用来测量页面性能的工具。通过Lighthouse,我们可以很清楚的看到页面的性能情况。 当前页面的性能总体得分为96分,

[转帖]spec2017 安装和使用

https://zhuanlan.zhihu.com/p/534205632 SPEC成立于1988年,SPEC基准广泛用于评估计算机系统的性能。SPEC CPU套件通过测量几个程序(例如编译器GCC,化学程序游戏和天气程序WRF)的运行时间来测试CPU性能。 安装编译器 运行speccpu2017

iperf 工具使用总结

转载请注明出处: iperf是一个用于测量网络带宽的工具,可以通过客户端和服务器之间的数据传输来评估网络性能。下面详细介绍iperf的使用方法、常用命令和参数以及注意事项,并提供一些示例说明。在iperf中,流量测试通常使用TCP或UDP协议。 1. 使用方法 首先,需要在一台计算机上运行iperf

[转帖]网络基本功(十五):细说网络性能监测与实例(上)

网络基本功(十五):细说网络性能监测与实例(上) 介绍 网络路径性能检测主要包括三方面的内容:带宽测量能够获知网络的硬件特性,如网络的最大容量,吞吐量测量能够获得网络实际可提供的最大容量,数据流测量能够了解真实占用的网络容量。 本文介绍在评估网络性能是否合理时,需要收集的数据及收集方式。涉及工具包括

网络诊断工具iPerf的使用

iPerf 是一个网络性能测试工具,用于测量最大 TCP 和 UDP 带宽性能。它支持多种平台,包括 Windows、Linux、macOS 等。以下是 iPerf 的基本使用方法: 安装 iPerf 在 Linux 系统中,你可以使用包管理器来安装 iPerf。在 Ubuntu 或 Debian

Stream的简单学习

Stream的简单学习 前言 https://github.com/jeffhammond/STREAM unzip STREAM-master.zip cd /STREAM-master/ make 就可以编译完成 含义 STREAM 是业界广为流行的综合性内存带宽实际性能 测量 工具之一。 随着

[转帖]Unixbench服务器综合性能测试方法及工具下载

UnixBench是一款开源的测试 unix 系统基本性能的工具,是比较通用的测试VPS性能的工具。 UnixBench会执行一系列的测试,包括2D和3D图形系统的性能衡量,测试的结果不仅仅只是CPU,内存,或者磁盘为基准,还取决于硬件,操作系统版本,编译器。 测试系统各个方面一系列的性能,然后将每