在unix中获取当地时间的最快方式

时间:2013-09-11 14:58:01

标签: c++ unix gmt

我正在调查unix系统上的日志记录性能。事情是我发现最昂贵的操作是获得日期。

目前我有时间这样 -

timeb currTime;
struct tm localTime;
ftime( &currTime )
localtime_r(&currTime.time, &localTime);

我把它改成了

struct timeval tv;
gettimeofday(&tv, NULL); 
time_t curtime = tv.tv_sec;
struct tm localTime = *(localtime(&curtime));

并没有看到任何性能提升。所以我想知道这可能不是在unix系统上获得本地时间的最快方法吗?

请分享您的想法。

先谢谢。

1 个答案:

答案 0 :(得分:1)

gettimeofday可以非常快速地为您提供UTC时间。转换到当地时间不是那么快。

将该转换为本地时间,直到您离开性能关键路径。

此外,您可以每天将UTC缓存到本地时间转换因子一次,以加快转换为本地时间,虽然这不是很完美,但它可能足以用于记录目的。