Может ли системное время Windows время от времени отступать? - PullRequest
0 голосов
/ 16 мая 2019

Spring boot проект, журнал, сколько времени потребовалось, чтобы сохранить 2 БД,

long start = System.currentTimeMillis();    
getDao().batchInsert(batchList);
long end = System.currentTimeMillis();
log.info("Save {} data 2 DB successfully took time: {}", getDescName(), (end - start));    

Очень странно, я обнаружил, что ситуация временная стоимость отрицательная , см. Ниже

2019-05-16 14:41:04.420  INFO 3324 --- [ave2db-thread-2] c.c.sz_vss.demo.AbstractSave2DBProcess   : Save Stock data 2 DB batch size: 416
2019-05-16 14:41:03.152  INFO 3324 --- [ave2db-thread-2] c.c.sz_vss.demo.AbstractSave2DBProcess   : Save Stock data 2 DB successfully took time: -1268

Почему это происходит?Это системная ошибка системного журнала?или это системное время Windows может иногда отступать?

1 Ответ

0 голосов
/ 16 мая 2019

Синхронизация времени сети может применять коррекцию в любом направлении, поэтому да, системный календарь может двигаться в обратном направлении.Также в часовых поясах, в которых наблюдается переход на летнее время, вы будете видеть разрывы +/- 1 час в год.

Вот почему не рекомендуется использовать системный календарь для измерения прошедшего времени.Существуют монотонные таймеры (в Windows QueryPerformanceCounter() в сочетании с QueryPerformanceFrequency(), в POSIX, например в Linux, это clock_gettime(CLOCK_MONOTONIC)).Управляемые платформы обычно заключают их в объект с именем «Секундомер».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...