我正在调查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系统上获得本地时间的最快方法吗?
请分享您的想法。
先谢谢。
答案 0 :(得分:1)
gettimeofday可以非常快速地为您提供UTC时间。转换到当地时间不是那么快。
将该转换为本地时间,直到您离开性能关键路径。
此外,您可以每天将UTC缓存到本地时间转换因子一次,以加快转换为本地时间,虽然这不是很完美,但它可能足以用于记录目的。