Linux下有vsyscall來優化一些例如time(NULL), gettimeofday這種調用的消耗; 但是Windows下, 沒有類似的東西, 但是思路還是有的 1. 程式啟動的時候, 獲取一下準確的時間戳 2. 然後每次需要獲取時間的時候, 獲取一下流逝的時間, 可以通過獲取CPU的tic ...
Linux下有vsyscall來優化一些例如time(NULL), gettimeofday這種調用的消耗; 但是Windows下, 沒有類似的東西, 但是思路還是有的
1. 程式啟動的時候, 獲取一下準確的時間戳
2. 然後每次需要獲取時間的時候, 獲取一下流逝的時間, 可以通過獲取CPU的ticks數, 或者進程啟動的毫秒數來獲取
前者通過Stopwatch.GetTimestamp()來獲取, 後者通過Environment.TickCount和Environment.TickCount64來獲取. 其中Environment.TickCount64只支持.net core 3.0以上的版本.