cache for ngx_http_time()

Maxim Dounin mdounin at
Sat Aug 17 00:46:55 UTC 2013


On Mon, Aug 05, 2013 at 09:06:57PM +0300, Serguei I. Ivantsov wrote:

> ngx_http_time() is called once per request and it call a heavy
> ngx_sprintf() function.
> Why not cache the output for one second (resolution of time_t)?
> I find nice time caching framework on ngx_times.c, with slots and memory
> barriers, but ngx_http_time() is not using it for some reason.
> In this case, probably, it is easier to cache just one string buffer and
> time_t value per process.

The cache is for current time, and it's used for Date header (see 
ngx_cached_http_time).  The ngx_http_time() function is to print 
arbitrary times, like Expires or Last-Modified, and these are 
usually non-cacheable.

Maxim Dounin

More information about the nginx-devel mailing list