我刚刚遇到了一个令人困惑的小故障。我唤醒了我的笔记本电脑(Windows 10),从周末的睡眠状态(可能是休眠状态)中醒来,发现时钟不对。现在是星期一下午 1:31,但我的电脑显示的时间是星期二凌晨 12:27。呃,可能是网络错误。几分钟后我回到办公桌前,又看了一会儿……在某个时候我注意到现在是下午 1:43,但我的电脑显示的时间是凌晨 12:31,好像它丢失了过去 12 分钟中的 8 分钟。我去了https://currentmillis.com/令我惊讶的是,毫秒计数器只是非常缓慢地增加;每秒大约 10 毫秒。(我每秒截取一次屏幕截图,大概持续了 10 秒,如果需要我可以提供,但我认为它不会提供任何有用的信息。)实际上,它又来了。我启动了一个 java 测试程序,在无限 while 循环中打印System.currentTimeMillis()
和Thread.sleep(1000);
,它表现出类似的行为 - 它暂停一些秒,然后吐出一团时间戳。即使之间然而,一团团的时间只过去了几毫秒。我在帖子的末尾附上了一份日志。在某个时候,它开始像往常一样工作。回想起来,我注意到,有几秒钟的时间被往后跳了几个小时,几乎到正确的时间。我注意到的另一件事(现在又发生了)是在奇怪的缓慢时间,Firefox、Outlook 和桌面窗口管理器使用了 100% 的 GPU。据我所知,100% GPU 似乎与时间诡计完全相关,而无需更准确的记录。
最终,我想知道为什么会发生这种情况,或者这种情况怎么可能发生。重新启动计算机会导致时钟停止出现奇怪的行为,所以我不需要知道如何结束故障的发生,但我本来认为这种行为几乎不可能发生。许多服务器程序都依赖于超时,如果时钟实际上停止了 13 分钟,则可能会导致各种其他问题。我怀疑我能否重现该问题,因此进一步调试是不可行的。本质上,我想知道是否有人听说过类似的事情,或者可以根据他们对 Windows 系统时间机制更深层次工作原理的了解(我没有)提出一个合理的理论。
记录的时间戳样本:
1553575488576
1553575488584
1553575488591
1553575488599
1553575488606
1553575488614
1553575488621
1553575488628
1553575488636
1553575488643
1553575488651
1553575488658
1553575488665
1553575488673
1553575488680
1553575488688
1553575488695
1553575488703
1553575488710
1553575488717
1553575488725
1553575488732
1553575488740
1553575488747
1553575488754
1553575488762
1553575488769
1553575488777
1553575488784
1553575488791
1553575488799
1553575488806
1553575488814
1553575488821
1553575488828
1553575488836
1553575488843
1553575488851
1553575488858
1553575488865
1553575488873
1553575488880
1553575488888
1553575488895
1553575488902
1553575488910
1553575488917
1553575488925
1553575488932
1553575488940
1553575488947
1553575488955
1553575488962
1553575488969
1553575488977
1553575488984
1553575488992
1553575488999
1553575489006
1553575489014
1553575489021
1553575489029
1553575489036
1553575489044
1553575489051
1553575489058
1553575489066
1553575489073
1553575489081
1553575489088
1553575489095
1553575489103
1553575489110
1553575489118
1553575489125
1553575489132
1553575489140
1553575489147
1553575489155
1553575489162
1553575489169
1553575489177
1553575489184
1553575489192
1553575489199
1553575489206
1553575489214
1553575489221
1553575489229
1553575489236
1553575489243
1553575489251
1553575489258
1553575489265
1553575489273
1553575489280
1553575489288
1553575489295
1553575489303
1553575489310
1553575489317
1553575489325
1553575489332
1553575489340
1553575489347
1553575489354
1553575489362
1553575489369
1553575489376
1553575489384
1553575489391
1553575489399
1553575489406
1553575489413
1553575489421
1553575489428
1553575489436
1553575489443
1553575489450
1553575489458
1553575489465
1553575489473
1553575489480
1553575489487
1553575489495
1553575489502
1553575489510
1553575489517
1553575489524
1553575489532
1553575489539
1553575489547
1553575489554
1553575489561
1553575489569
1553575489576
1553575489584
1553575489591
1553575489598
1553575489606
1553575489613
1553575489621
1553575489628
1553575489635
1553575489643
1553575489650
1553575489658
1553575489665
1553575489672
1553575489680
1553575489687
1553575489695
1553575489702
1553575489709
1553575489717
1553575489724
1553575489732
1553575489739
1553575489746
1553575489754
1553575489761
1553575489769
1553575489776
1553575489783
1553575489791
1553575489798
1553575489806
1553575489813
1553575489820
1553575489828
1553575489835
1553575489843
1553575489850
1553575489857
1553575489865
1553575489872
1553575489880
1553575489887
1553575489895
1553575489902
1553575489909
1553575489917
1553575489924
1553575489932
1553575489939
1553575489946
1553575489954
1553537091156
1553537092160
1553537093161
1553537094162
1553537095163
1553537096164
1553537097164
1553537098165
1553537099174
1553537100193
1553537101196
1553537102209
1553537103214
1553537104215
1553537105216
1553537106216
1553576225618
1553576226620
1553576227623
1553576228626
1553576229628
1553576230630
1553576231632
1553576232636
1553576233639
1553576234641
1553576235644
1553576236646
1553576237648
1553576238650
编辑:我收集了更多数据并将其转化为图表。蓝线是时间的进展,通过每秒尝试系统输出 currentTimeMillis 来计算。当时钟出现故障时,日志会聚集成七组左右,但平均每秒仍为一行,所以我认为您可以将 x 轴视为以秒为单位。(我减去了第一个时间戳,并将所有内容剪辑到 41M,因此图表中的模式可见。我不认为我删除的任何信息特别有用。)目测图表,看起来发生的事情是,在约 18 分钟的周期内,时钟会正常 5 分钟(尽管提前了约 11 个小时),然后 13 分钟的时钟非常慢,然后短暂地向后下降几个小时,然后向前跳到某个点,好像从未发生过慢速段。 (当我计算出一个周期的平均速率时,我得到了 1003 毫秒/样本,尽管我承认记录的采样率和实际采样率之间的联系是基于我自己的估计。但我仍然相信时钟速率在一个周期内平均为正确的速率。) 编辑:仅供参考,我今天又遇到了这个故障。可能相关:我让笔记本电脑休眠了大约 5 天,然后下次打开时它就出现了问题。另请注意:Windows 10 Enterprise,版本 1803,内部版本 17134.590。