gpt4 book ai didi

c++ - Windows 上 localtime_s() 多线程性能不佳的解决方法

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

好像localtime_s() (相当于标准 localtime_r )包含 MSVC 中的关键部分。

为了比较,这里有 2 个示例应用程序,一个是 localtime_s在一个循环中,另一个 gmtime_s .

分析显示内部有严重的锁争用 isindstcommon_localtime_s<__int64> 调用:

localtime lock contention

gmtime没有出现问题:

gmtime no lock contention

有什么方法可以解决这个问题,让自己保持清醒 localtime_s多线程环境中的性能,前提是我的进程中确实需要本地时间?

最佳答案

这是一个建议的解决方案:

以最快的速度记录所有时间。当通过 GUI、日志文件或其他任何方式将它们呈现给用户时,然后转换为本地时间。

由于大多数 GUI 和日志输出都是单线程的,这应该可以消除程序其余部分的争用。

如果程序从不向用户呈现数据,则只需以快速时间格式将其写出并使用后处理工具对其进行转换或显示即可。

关于c++ - Windows 上 localtime_s() 多线程性能不佳的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35750464/

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