После изучения VBA-бенчмаркинга ( см. Также ) Я не удовлетворен тем, что эти ответы достаточно подробно описаны.Из аналогичного вопроса о сроках в Go я вижу разницу между измерением абсолютного времени и изменениями во времени.Для абсолютного времени следует использовать «настенные часы», которые можно синхронизировать между машинами, используя сетевой протокол времени, например
. Между тем, для измерения различий во времени следует использовать «монатонные часы», поскольку они неподвержены високосным секундам или (в соответствии с этим связанным ответом го) изменениям частоты часов.
Я правильно понял?Есть что-нибудь еще, чтобы рассмотреть?Если предположить, что эти определения верны, к какой категории относятся все эти часы или, другими словами, , какие из этих часов дадут мне наиболее точное измерение изменений во времени:
- VBA
Time
- VBA
Timer
- WinApi
GetTickCount
- WinApi
GetSystemTimePreciseAsFileTime
- WinApi
QueryPerformanceFrequency
+ QueryPerformanceCounter
Или это что-то еще?
Возможно, я пропускаю другие подходы.Я говорю это потому, что некоторые языки, такие как Java, получают время в наносекундах , а не в микросекундах, как это возможно?Конечно, Windows Api использует самый точный аппаратный таймер, который дает микросекундное разрешение.Что делает Java и могу ли я это скопировать?
PS, я не знаю, как пометить это, пожалуйста, добавьте, как считаете нужным