maf*_*afu 24 datetime clock time-precision
我知道10年前,典型的时钟精度等于系统标记,其范围为10-30ms.在过去几年中,精确度分多步增加.如今,有一些方法可以测量实际纳秒的时间间隔.但是,通常的框架仍然会以大约15ms的精度返回时间.
我的问题是,哪些步骤确实提高了精度,如何以纳秒为单位进行测量,以及为什么我们仍然经常获得小于微秒的精度(例如在.NET中).
(免责声明:我之前没有问过这个奇怪的事情,所以我猜我在搜索时错过了这个问题.请关闭并指出我的问题,谢谢.我相信这属于SO而不是任何其他SOFU网站.我理解精度和准确度之间的区别.)
Rom*_*eau 24
它确实是PC历史的一个特征.最初的IBM-PC使用了一个称为实时时钟的芯片备份电池(你还记得需要更换这些电池吗?)这些芯片在电机关闭并保持时间时运行.这些频率为32.768 kHz(2 ^ 15周/秒),这使得在16位系统上计算时间变得容易.然后将该实时时钟写入CMOS,这可通过旧操作系统中的中断系统获得.
一个更新的标准来自微软和英特尔称为高精度事件计时器,它指定10MHz的时钟速度 http://www.intel.com/hardwaredesign/hpetspec_1.pdf 即使是较新的PC架构也会采用这种方式并将其置于北桥控制器上HPET可以在100MHz甚至更高的频率下振荡.在10Mhz时,我们应该能够获得100纳秒的分辨率,在100MHZ时,我们应该能够获得10纳秒的分辨率.
已知以下操作系统无法使用HPET:Windows XP,Windows Server 2003和早期Windows版本,较旧的Linux版本
已知以下操作系统能够使用HPET:Windows Vista,Windows 2008,Windows 7,基于x86的Mac OS X版本,使用2.6内核的Linux操作系统和FreeBSD.
使用Linux内核,您需要更新的"rtc-cmos"硬件时钟设备驱动程序而不是原始的"rtc"驱动程序
所有这些都说我们如何获得这个额外的分辨率?我可以从以前的stackoverflow文章剪切和粘贴,但不是 - 只需搜索HPET,你会找到关于如何让更精细的计时器工作的答案
我今天在 MSDN 上读了一篇关于这个的博客文章,在这里阅读,它很好地涵盖了这个主题。它强调 C# 的 DateTime,但它是普遍适用的。
| 归档时间: |
|
| 查看次数: |
19255 次 |
| 最近记录: |