【计算机架构】如何计算 CPU 时间
目录
0x00 响应时间和吞吐量(Response Time and Throughput)
0x01 相对性能(Relative Performance)
0x02 执行时间测量(Measuring Execution Time)
0x03 CPU 时钟(Clocking)
0x04 CPU时间
0x05 指令计数和 CPI
0x06 性能摘要(Performance Summary)
0x07 功率趋势(Power Trends)
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/. |
相关文章:
【计算机架构】如何计算 CPU 时间
目录 0x00 响应时间和吞吐量(Response Time and Throughput) 0x01 相对性能(Relative Performance) 0x02 执行时间测量(Measuring Execution Time) 0x03 CPU 时钟(Clocking) 0x…...
银行数字化转型导师坚鹏:银行行长如何进行数字化转型
银行行长如何进行数字化转型 ——数字化转型背景下重塑银行行长核心竞争力 授课背景: 很多银行存在以下问题:银行行长不知道如何进行数字化转型?银行行长不清楚银行数字化能力模型的内涵?银行行长不知道如何通过数字化转型提…...
N32G45x学习笔记--- gpio引脚复用
关于gpio的引脚复用需要开启复用时钟 RCC_EnableAPB2PeriphClk(RCC_APB2_PERIPH_AFIO, ENABLE);官方引脚复用: 芯片上电默认使能 SWD-JTAG 调试接口,调试接口被映射到 GPIO 端口上 禁止 JTAG 使能SWJ-DP /* 禁止 JTAG 使能SWJ-DP */GPIO_ConfigPinRemap(GPIO_RMP_SW_JTAG_S…...
ArcGIS Pro中使用深度学习的高分辨率土地覆盖制图
本文非常详细的讲解了利用深度学习在高分辨率土地覆盖制图的应用,本文作者:Amin Tayyebi,文章从数据准备到训练U-Net模型等等细节都有讲解。本译文只是使用谷歌翻译而成。文章可能有错误语句及不通顺情况,所以仅供参考学习。有需要…...
【学习笔记】「NOI2018」冒泡排序
从题解的角度来说,这是一道简单题。不过考场上在没有任何人提示的情况下要想出正确的结论其实并不容易。 我自己做这道题的时候,因为没有想清楚题目给出的下界能取到的充要条件是什么,所以到了很晚才猜到结论,以至于难以为继。 …...
【Ruby学习笔记】3.Ruby 语法及数据类型
前言 本章介绍Ruby的语法和数据类型。 Ruby 语法 让我们编写一个简单的 Ruby 程序。所有的 Ruby 文件扩展名都是 .rb。所以,把下面的源代码放在 test.rb 文件中。 实例 #!/usr/bin/ruby -wputs "Hello, Ruby!";在这里,假设您的 /usr/bin …...
华为OD机试题【字符匹配】用 Java 解 | 含解题说明
华为Od必看系列 华为OD机试 全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典本篇题目:字符匹配 题目 给你一个字符串…...
JavaScript数组对象的浅拷贝与深拷贝(二)实现对象深拷贝的方法(5种)
JavaScript实现对象深拷贝的方法(5种)知识回调(不懂就看这儿!)场景复现实现对象深拷贝的五种方法1.json暴力转化2.es6扩展运算符3.for in循环遍历对象4.Object.assign()对象的合并5.利用循环和递归的方式实现对象浅拷贝…...
iPhone屏幕适配(之屏幕尺寸)
Device screen size 各设备屏幕尺寸 DeviceDimensions (portrait)iPhone 14 Pro Max430x932 pt (1290x2796 px 3x)iPhone 14 Pro393x852 pt (1179x2556 px 3x)iPhone 14 Plus428x926 pt (1284x2778 px 3x)iPhone 14390x844 pt (1170x2532 px 3x)iPhone 13 Pro Max428x926 pt (…...
手机变砖修复神器之 8 个的 Android手机系统修复工具
如果您经常在 Android 设备上遇到问题,则需要找到最好的 Android 系统修复应用程序并使用它来一劳永逸地解决您的问题。如果您不确定执行此操作的好应用是什么,我们在这里为您列出了一些最好的 Android 修复软件。 虽然现在出货的 Android 手机相当稳定…...
稀疏矩阵(Sparse Matrix)
1.背景 在数据科学和深度学习等领域常会采用矩阵格式来存储数据,但当矩阵较为庞大且非零元素较少时, 如果依然使用dense的矩阵进行存储和计算将是极其低效且耗费资源的。所以,通常我们采用Sparse稀疏矩阵的方式来存储矩阵,提高存储…...
深度学习中的损失函数
文章目录一. Loss函数1. 均方差损失(Mean Squared Error Loss)2. 平均绝对误差损失(Mean Absolute Error Loss)3.(Huber Loss)4. 分位数损失(Quantile Loss)5. 交叉熵损失࿰…...
English Learning - L2 语音作业打卡 辅音咬舌音 [θ] [ð] Day29 2023.3.21 周二
English Learning - L2 语音作业打卡 辅音咬舌音 [θ] [] Day29 2023.3.21 周二💌发音小贴士:💌当日目标音发音规则/技巧:🍭 Part 1【热身练习】🍭 Part2【练习内容】🍭【练习感受】🍓元音 [θ]…...
【原始者-综述】
目录知识框架No.1 AcwingNo.2 LeetcodeNo.3 PTANo.4 蓝桥No.5 牛客网No.6 代码随想录知识框架 No.1 Acwing 那就点击这里转向自己的Acwing题解咯 单调栈,动态规划,贪心,回溯,二叉树,站与队列,双指针&#…...
C++内存模型
目录 一.内存分区 二,分区顺序 1 程序运行前 2 程序运行后 3.new操作符 一.内存分区 内存分区意义:不同区域存放的数据,赋予不同的生命周期, 给我们更大的灵活编程 内存可以分为以下几个区: 代码区:存放函数体的二进制代码…...
八股+面经
文章目录项目介绍Java基础MapHashMap v.s Hashtable(5点)ConcurrentHashMap v.s Hashtable(2点)代理模式1. 静态代理2. 动态代理2.1 JDK 动态代理机制2.2 CGLIB 动态代理机制Java并发线程volatilesynchronized线程池JVM类加载机制垃圾回收(GC)1. 引用类型…...
MySQL更新数据流程
1.mysql三种重要日志 redo log(重做日志):存在于引擎层,物理存储,通过设置innodb_flush_log_at_trx_xommit1 让其持久化到磁盘,保证引擎的crash-safe能力,遵从WAL技术(Write-Ahead …...
测试开发进阶系列课程
测试开发系列课程1.完善程序思维--------案列:图书管理系统的创建**(一)图书管理系统的创建**1.完善程序思维--------案列:图书管理系统的创建 (一)图书管理系统的创建 1.在main中写入主函数,…...
Qt源码阅读(三) 对象树管理
对象树管理 个人经验总结,如有错误或遗漏,欢迎各位大佬指正 😃 文章目录对象树管理设置父对象的作用设置父对象(setParent)完整源码片段分析对象的删除夹带私货时间设置父对象的作用 众所周知,Qt中,有为对象设置父对象…...
【Python入门第四十二天】Python丨NumPy 数组裁切
裁切数组 python 中裁切的意思是将元素从一个给定的索引带到另一个给定的索引。 我们像这样传递切片而不是索引:[start:end]。 我们还可以定义步长,如下所示:[start:end:step]。 如果我们不传递 start&…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
Java 加密常用的各种算法及其选择
在数字化时代,数据安全至关重要,Java 作为广泛应用的编程语言,提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景,有助于开发者在不同的业务需求中做出正确的选择。 一、对称加密算法…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
selenium学习实战【Python爬虫】
selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据
微软PowerBI考试 PL300-在 Power BI 中清理、转换和加载数据 Power Query 具有大量专门帮助您清理和准备数据以供分析的功能。 您将了解如何简化复杂模型、更改数据类型、重命名对象和透视数据。 您还将了解如何分析列,以便知晓哪些列包含有价值的数据,…...
