gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:33:26 28 4
gpt4 key购买 nike

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

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

timestamp = duration_cast<milliseconds>(system_clock::now().time_since_epoch()).count()

我想知道是否有更快的方法来做到这一点?我所说的更快是指获取时间戳本身的性能,而不是时间戳的分辨率。

分辨率对于我的特定应用来说并不是很重要,它可以低至一秒。此外,utc/local 无关紧要,我只是使用时间戳将其与通过相同方法获取的其他时间戳进行比较。

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

最佳答案

如果性能确实是一个问题,而准确性不是,那么您可能根本不需要使用时间戳。而只是为每个连接保留一个计数器,每当连接发生事件时,将计数器重置为零。每当您的计时器关闭时,让它为每个连接增加计数器,并断开任何计数器值超过 (N) 的连接(对于您认为最有效的 N 值)

关于c++ - 在 C++11 中获取当前时间的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46771839/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com