strftime() calls tzset() unnecessarily even if no timezone information is required. Since tzset() involves at least single stat('/etc/localtime') syscall, that can be significant overhead for applications that call strftime() very frequently (e.g. gbookmark GLib component, see http://bugzilla.gnome.org/show_bug.cgi?id=535223#c4). Attached patch makes strftime() call tzset() only when actually necessary. It might be preferrable to ratelimit tzset() stat() calls, to say single call per few seconds - there's no sense in checking for timezone change thousands of times per second.
Created attachment 2775 [details] Proposed patch
I've added a slightly changed version of the patch. And no, there will never be rate limiting.