Я только что столкнулся с непонятным глюком. Я разбудил свой ноутбук (Windows 10) после выходных, проведенных в спящем режиме (возможно, в режиме гибернации), и заметил, что часы идут неправильно. Было 1:31 дня в понедельник, но мой компьютер утверждал, что сейчас около 12:27 ночи во вторник. Эх, может быть, ошибка сети. Вернулся к своему столу через несколько минут, посмотрел на часы еще немного... В какой-то момент я заметил, что было 1:43 дня, но мой компьютер утверждал, что сейчас 12:31 ночи, как будто он потерял 8 из последних 12 минут. Я пошелhttps://currentmillis.com/и к моему удивлению, счетчик миллисекунд увеличивался очень медленно; примерно на 10 мс в секунду. (Я делал скриншот примерно каждую секунду в течение, может быть, 10 секунд, который я могу предоставить, если необходимо, но я не думаю, что это даст больше полезной информации.) На самом деле, ЭТО ДЕЛАЕТ ОПЯТЬ. И я запустил тестовую программу Java, в бесконечном цикле while печатая System.currentTimeMillis()
и Thread.sleep(1000);
, она демонстрирует похожее поведение - она останавливается нанесколькосекунд, а затем выплевывает кучу временных меток. Дажемеждусгустки, хотя, проходят только миллисекунды. Я прикрепил лог в конце своего поста. В какой-то момент он начал работать как обычно. Я заметил, оглядываясь назад, что было несколько секунд, когда время прыгало назад на несколько часов,околона правильное время. Еще одна вещь, которую я заметил (это происходит снова, сейчас), заключается в том, что во время странных медленных периодов Firefox, Outlook и Desktop Windows Manager используют 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
Редактировать: Я собрал больше данных и превратил их в график. Синяя линия — это прогрессия времени, подсчитанная путем попытки вывести sysout currentTimeMillis каждую секунду. Когда часы давали сбой, журналы сбивались в группы по семь или около того, но все равно в среднем составляли около одной строки в секунду, поэтому я думаю, что вы можете рассматривать ось x как выраженную в секундах. (Я вычел первую временную метку и обрезал все до 41M, чтобы закономерности на графике были видны. Я не думаю, что какая-либо удаленная мной информация была особенно полезна.) Глядя на график, кажется, что происходило следующее: в циклах примерно по 18 минут часы шли нормально в течение 5 минут (хотя и на ~11 часов вперед), затем 13 минут очень медленного хода, затем кратковременный спад назад на много часов, затем скачок вперед в точку, как будто медленного сегмента никогда не было. (Когда я вычислил среднюю частоту за один цикл, я получил 1003 мс/выборку, хотя я допускаю, что связь между зарегистрированной частотой дискретизации и РЕАЛЬНОЙ частотой дискретизации основана на моей собственной оценке. Тем не менее, я считаю, что тактовая частота в среднем соответствует правильной частоте в течение цикла.) Редактировать: FYI, я только что снова столкнулся с этим глюком сегодня. Возможно, это относится к делу: я оставил свой ноутбук в спящем режиме примерно на 5 дней, а затем он проявил проблему, когда я снова его включил. Также обратите внимание: Windows 10 Enterprise, версия 1803, сборка 17134.590.