![总结](https://linux22.com/image/1392472/%E6%80%BB%E7%BB%93.png)
我有一台 i7,其时钟速度应为 3.2 GHz。然而,在系统对话框中,它显示 3.2 和 3.19 GHz。
并且在任务管理器中也显示3.19:
我在这里遗漏了什么?
答案1
处理器卖运行在 3.2GHz,但实际上运行在 3.19GHz,本质上是一样的。出于营销和展示目的,这些数字总是四舍五入,而 ~10MHz 的差异根本无法通过任何方式检测到。
例如,我的 i7 的售价(包装盒上写的)是 2.67GHz,但我的监控工具告诉我它最高可以达到 2.667GHz。是2.7GHz,因为这就是四舍五入的方式。事实上,我的监控工具告诉我它可以运行到 2667000Hz,也就是 2.66700GHz,但由于这种精度水平毫无意义,他们将其四舍五入为 2.7。
硬盘驱动器也存在同样的情况。例如,我的笔记本电脑出售时配有 500GB 的磁盘驱动器。然而,如果我实际检查,我会发现它500107862016
是
500107862016/1024/1024/1024=465.7 Gibibytes
或者
500107862016/1000/1000/1000=500.1 Gigabytes.
因此,我的磁盘实际上是 500.1 GB,但以 500 GB 的价格出售。您的 CPU 实际上运行速度为 3.19GH,但以 3.2 的价格出售。这不是问题,这种精度水平对于几乎所有任务来说都是没有意义的。
答案2
总结
像这样的小差异是正常的。
技术说明
当程序想要列出硬件及其规格时,它可以采用以下两种方式之一进行:
- 根据设备型号的规格
- 测量
按型号
如果它使用型号来确定速度、尺寸等容量,那么它可以采用以下两种方式之一进行:
- 使用型号和规格之间的某种通用映射
- 保存硬件型号规格的数据库
通用映射基本上是不可能的,因为这需要所有制造商都遵守的标准,而且即使这样,型号中能够存储的信息量也是有限的。
保留数据库也不是什么好事,因为数据库会变得非常大,尤其是当多个程序都保留自己的数据库时。此外,它们必须不断更新以适应新硬件。
通过测量
获取设备功能的更好方法是询问设备本身。这样,您就可以确保实际的数据。问题是,即使询问设备,它也有两种响应方式:
- 使用基于规范的数据
- 有测量数据
设备可以报告其所具备的功能应该根据其数据表规范获取。例如,您可以通过调用cpuid
指令。但是,这些信息仅提供制造商确定的 CPU 功能,而不一定是它实际执行的操作。
了解设备的更准确方法是直接进行查询。
例如,为了找出实际的要了解硬盘的大小,只需向其发送命令来确定其总大小。这样,无论型号是什么,您都可以找到确切的大小。对于硬盘,这通常会有所不同,因为虽然驱动器的型号可能会报告“1GB”或 1,000,000,000 字节,但如果您检查其大小,您可能会发现它实际上是 1,053,761,256 字节,因为它们无法制造精确到字节的硬盘,并且通常会四舍五入以包含备用空间来补偿坏扇区等。
同样,CPU 的速度也会受到乘数和前端总线. 虽然数字数据应该确切地说,确切地说,数字电子设备可能会受到一些因素的影响,这些因素可能会导致微小的波动。乘数通常不会波动,但总线速度通常会比预期值高一点或低一点,这反过来会导致 CPU 速度比其规格规定的值高一点或低一点。
用法
静态数据和实时数据都有其用途。实时数据可以显示即时信息,对于监控以下程序很有用:任务管理器,而静态数据对于系统信息屏幕或硬件库存程序之类的很有用。
分析
就您而言,Windows 在启动时测量了一次内核速度,并在会话的其余时间报告该速度。如果您重新启动,您可能会看到一个或两个内核略有变化。
如果您在 CPU-Z 等程序中观察实时速度一段时间,您可能会看到它随时间而变化,特别是当系统执行不同操作时。它可能会上升一点,也可能会下降一点。事实上,所有核心都可能会发生这种情况。