Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 现代个人电脑的内部时钟有多精确?_Datetime_Clock_Time Precision - Fatal编程技术网

Datetime 现代个人电脑的内部时钟有多精确?

Datetime 现代个人电脑的内部时钟有多精确?,datetime,clock,time-precision,Datetime,Clock,Time Precision,我知道10年前,典型的时钟精度相当于系统的滴答声,在10-30毫秒的范围内。在过去几年中,精度分多个步骤提高。现在,有很多方法可以测量以纳秒为单位的时间间隔。然而,通常的框架返回时间的精度仍然只有15毫秒左右 我的问题是,哪些步骤确实提高了精度,如何以纳秒为单位进行测量,以及为什么我们的精度仍然经常低于微秒(例如在.NET中) (免责声明:我觉得奇怪的是,以前没有人问过这个问题,所以我想我在搜索时错过了这个问题。如果是这样的话,请关闭并向我指出这个问题,谢谢。我相信这属于so,而不属于任何其他S

我知道10年前,典型的时钟精度相当于系统的滴答声,在10-30毫秒的范围内。在过去几年中,精度分多个步骤提高。现在,有很多方法可以测量以纳秒为单位的时间间隔。然而,通常的框架返回时间的精度仍然只有15毫秒左右

我的问题是,哪些步骤确实提高了精度,如何以纳秒为单位进行测量,以及为什么我们的精度仍然经常低于微秒(例如在.NET中)


(免责声明:我觉得奇怪的是,以前没有人问过这个问题,所以我想我在搜索时错过了这个问题。如果是这样的话,请关闭并向我指出这个问题,谢谢。我相信这属于so,而不属于任何其他SOFU网站。我理解精确度和准确性之间的区别。)

我今天在MSDN上读了一篇关于这一点的博文,内容涵盖得相当透彻。它强调C#的日期时间,但它是普遍适用的。

这确实是PC历史的一个特征。 最初的IBM-PC使用了一种称为实时时钟的芯片,该芯片由电池备份(你还记得需要更换电池吗?),当机器断电并计时时,这些芯片就会运行。这些频率为32.768 kHz(2^15个周期/秒),这使得在16位系统上计算时间变得很容易。 该实时时钟随后被写入CMOS,CMOS可通过旧操作系统中的中断系统获得

微软和英特尔推出了一个新的标准,称为高精度事件计时器,它指定了10MHz的时钟速度 即使是较新的PC架构也会将其安装在Northbridge控制器上,HPET的tun频率可以达到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内核和FreeBSD的Linux操作系统

对于Linux内核,您需要更新的“rtc cmos”硬件时钟设备驱动程序,而不是原始的“rtc”驱动程序

所有这些都说明了我们如何获得这个额外的分辨率?
我可以从以前的stackoverflow文章中剪切和粘贴,但不仅仅是搜索HPET,你会找到如何让更好的计时器工作的答案。好吧,到目前为止,我还没有看到任何一台PC,它可以将准确(实时)时间保持在100毫秒/天以上。在过去40年左右的时间里,我所有的电脑的实时性总是快或慢,每天可能会漂移2到3秒。其主要原因是驱动时钟电路的PCs晶体振荡器的精度(无论频率如何)。在普通计算机中,这些振荡器从未校准到其标称频率,而且由于PC机箱内温度的变化,甚至没有对频率漂移进行基本补偿。

我刚刚读到了同样的内容。它提出了一个问题,因为埃里克没有详细说明。他的文章只是关于基础知识。@mafurtct:)测量时间不是一门精确的科学,因为什么是时间?时间定义为事件发生的时间段。原子钟使用原子共振频率标准作为计时元件,因此非常精确。但是计算机无法使用如此精确的测量,所以使用其他精度较低的方法。这就是为什么随着时间的推移,时钟会变得不同步。是的,但这并不能完全回答这个问题。计算机可以为时间差提供ns精度,因此应该有一种方法来提高我们通常获得的ms精度。另外,我想知道这种ns精度是如何(有时)达到的。断开的链接。新的是或者你可以在这里使用wayback机器,很明显,HPET的一些实现存在精度问题,这是由于读取速度慢或者存在漂移等问题。不过,在大多数情况下,尤其是在媒体播放/同步(因为这就是它最初的用途)时,仍然可以使用。也许您正在体验。