1

我正在调查 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 系统上获取本地时间的最快方法吗?

请分享你对此的想法。

提前感谢。

4

1 回答 1

1

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

推迟将其转换为本地时间,直到您脱离性能关键路径。

您还可以每天缓存一次 UTC 到本地时间的转换因子,以加快转换到本地时间的速度,尽管这并不完美,但它可能足以用于记录目的。

于 2013-09-11T15:42:54.547 回答