在程式中,我們經常需要獲取當前的時間戳到毫秒甚至微妙級,但是頻繁的呼叫api會對程式的效能有些許影響,並且要還要考慮不同平台的影響。參考大佬的實現,積累下關於頻繁獲取時間戳的知識。
實現的思路是:
#include #include #include #include using namespace std;
#ifdef _win32
#include #else
#include #endif //_win32
//該類借助raii思想,使傳入的task物件可以成對進行,而不考慮釋放的問題
class oncetoken
_ondestructed = ondestructed;
} oncetoken(const task &onconstructed, task &&ondestructed)
_ondestructed = std::move(ondestructed);
} ~oncetoken()
}private:
oncetoken();
oncetoken(const oncetoken &);
oncetoken(oncetoken &&);
oncetoken &operator =(const oncetoken &)=delete;
oncetoken &operator =(oncetoken &&) = delete;
task _ondestructed;
};static inline uint64_t getcurrentmicrosecondorigin()
static atomics_currentmicrosecond(getcurrentmicrosecondorigin());
static atomics_currentmillisecond(getcurrentmicrosecondorigin() / 1000);
static inline bool initmillisecondthread()
});static oncetoken s_token(() );
return true;
}uint64_t getcurrentmillisecond()
uint64_t getcurrentmicrosecond()
#include using namespace std;
int main(int argc, char *ar**)
getchar();
return 0;
}
時間戳的獲取方法
new date new date gettime date.now 三種方法都可以獲取時間戳,但是實際上效能是不一樣的 雖然差別不大,但是也算是一種效能的追求 var a new date var b newdate gettime var c date.now console.log a,b,c...
c 獲取時間戳
獲取相對程式啟動的 時間 單位 ms 實際的秒數 1000 public static long getreletivetostartprogramseconds currentdate nanoseconds elapsedticks 100 ticks elapsedticks seconds ...
C 獲取時間戳,時間戳與時間格式互轉
最近專案中用到獲取時間的功能,現在把用到的分享一下。1.時間戳轉為 00 00時區 日期格式 yyyy mm dd hh mm ss 時間戳轉為 00 00時區 日期格式 yyyy mm dd hh mm ss public static datetime getutcdatetime string...