로컬 복사본을 유지하고 필요한 경우에만 업데이트해야합니다. FUNC는 스레드로부터 안전하지 않습니다 아래 ... 또한 나는 ... CPU 시간의 6 ~ 7 %를 저장할 수 있습니다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);
}
추가 세부 사항을 본 적이 : - 내 애플 3000/초에 호출보다 더 만든다
localtime_r()
내가 당신에게 모든 번호, asc99c와 미르 감사 time_t
초
"2011-12-09 10:32:45"
의 타임 스탬프 문자열을 캐시 할 때 저장 적어도 33 %의 CPU 시간을 발견했다.
귀하의 합당한 기준은 무엇입니까? – Jon
로그 작성 등을 위해 localtime_r()을 3000/초 이상 호출하는 시나리오에서 시간을 절약 할 수 있습니다. – SparKot
문제를 저장할 시간이 있다면 수행하십시오. 상관 없으면하지 마십시오. 차이점이 * 당신 *에게 중요한지 어떻게 결정할 수 있습니까? – Jon