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 から現地時間への変換係数を 1 日 1 回キャッシュして、現地時間への変換を高速化することもできますが、これは完全ではありませんが、おそらくログ記録の目的には十分です。

于 2013-09-11T15:42:54.547 に答える