ローカルコピーをstruct tm
のままにしておき、必要な場合にのみ更新してください。 FUNC以下のスレッドセーフではありません...また、私はlocaltime_r()をキャッシングする価値はありますか?
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);
}
追加の詳細... CPU時間のわずか6〜7%を保存することができます見てきました: - 私のアプリは3000以上/秒に呼び出しを行います
localtime_r()
は、私はあなたにすべての番号、asc99cとミルチャに感謝time_t
秒
"2011-12-09 10:32:45"
のタイムスタンプ文字列をキャッシュしたときに保存し、少なくとも33%のCPU時間を見つけました。
あなたの合理性の基準は何ですか? – Jon
ログを書き込むために3000 /秒以上のlocaltime_r()を呼び出すシナリオで時間を節約するために... – SparKot
あなたに問題を保存する時間があれば、それをしてください。それが問題でなければ、しないでください。違いが*あなた*に重要であるかどうか*私たち*決定することができますか? – Jon