在C++ 11中获取当前时间的最快方法是什么?

Ged*_*tis 6 c++ performance time c++11

上下文:我正在编写一个高性能的C++ 11应用程序,其中一部分是删除非活动连接.为此,我在我的连接对象中存储了"最后一个活动"时间戳,我在执行操作时会更新该时间戳.然后我有一个计时器,每隔几秒运行一次,循环遍历所有会话,并删除不活动的计时器.

目前我正在使用此代码获取当前时间戳:

timestamp = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count()
Run Code Online (Sandbox Code Playgroud)

我想知道是否有更快的方法吗?更快,我的意思是获取时间戳本身的性能,而不是时间戳的分辨率.

对于我的具体应用,分辨率并不重要,它可能会低至一秒钟.此外,utc/local无关紧要,我只使用时间戳将其与其他时间戳进行比较,这是通过相同的方法获得的.

我想保持跨平台,但也欢迎使用条件编译进行特定于平台的优化.

Jer*_*ner 5

如果性能确实是一个问题,而准确性不是,那么您可能根本不需要使用时间戳.而只是为每个连接保留一个计数器,并且每当连接发生活动时,将计数器重置为零.每当你的计时器熄灭时,让它为每个连接递增计数器,并断开计数器值超过(N)的任何连接(对于你认为最合适的N值)