gpt4 book ai didi

缓存 localtime_r() 值得吗?

转载 作者:太空宇宙 更新时间:2023-11-03 23:34:36 25 4
gpt4 key购买 nike

是否值得保留一份 struct tm 的本地副本并仅在需要时更新它?下面的 func 不是线程安全的...我也看到只能节省 6% 到 7% 的 CPU 时间...

struct tm* custom_localtime (time_t now_sec)
{

static time_t cache_sec;
static struct tm tms;

if (now_sec != cache_sec) {
cache_sec = now_sec;
localtime_r(&cache_sec, &(tms));
}

return(&tms);
}

其他详细信息:- 我的应用每秒调用 localtime_r()

超过 3000 次

当我再次缓存格式为 "2011-12-09 10:32:45" time_t 的时间戳字符串时,发现至少节省了 33% 的 CPU 时间秒

谢谢大家,asc99c 和 Mircea。

最佳答案

我可能会在您的问题中提到 3000/s 的调用率!做吧。我最近正在分析调用本地时间大约 1,000,000 * 10,000 次的屏幕的生成。

嵌套循环本来可以通过一些思考得到实质性改进,但我看到的是大约 85% 的 CPU 时间被 localtime 使用了。简单地缓存结果,使其仅被调用 10,000 次,从而减少了 85% 的页面生成时间,这使得它足够快。

关于缓存 localtime_r() 值得吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7427324/

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