上下文: 我正在編寫一個高性能的C++ 11應用程序,其中的一部分是刪除不活動的連接。爲此,我在我的連接對象中存儲了「最後一次活動」時間戳,在進行操作時我會更新它。然後我有一個計時器,每隔幾秒運行一次,在所有會話中循環,並刪除不活動的計時器。在C++ 11中獲取當前時間的最快方法是什麼?
目前我使用此代碼來獲取當前時間戳:
timestamp = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count()
我不知道是否有任何更快的方式做到這一點?更快的意思是獲得時間戳本身的性能,而不是時間戳的解析度。
對於我的特定應用來說,分辨率並不是很重要,它可能會低至一秒。另外,utc/local無關緊要,我只使用時間戳將其與其他時間戳進行比較,通過相同的方法獲得。
我想保持它的跨平臺,但也歡迎使用條件編譯進行平臺特定的優化。
爲什麼你不簡單''timestamp = system_clock :: now();'? – nwp
您是否測量過時間戳是瓶頸?你有沒有檢查(優化!)生成的機器碼? –
要添加到@nwp,只需檢查'system_clock :: now() - timestamp