Hacker News new | ask | show | jobs
by LanceH 3392 days ago
Maybe you could set up some caching.
2 comments

Caching is basically what the vdso things do. In my recollection, they basically grab a good time from the kernel occasionally, and then use userspace accessible things like rdtsc() to offset from that authoritative timestamp. So it turns millions of syscalls into one.
For time?
Yes, for time too. For one, if you don't need over second precision, they why have some of your servers e.g. ask for the current time thousands of times per second? There are ways to get a soft expiration that don't involve asking for the time.
In case someone is interested in a concrete example, I first learned about caching time by discovering this package in my dependencies: https://hackage.haskell.org/package/auto-update

Its README basically says instead of having every web request result in a call to get current time, it instead creates a green thread that runs every second, updating a mutable pointer that stores the current time.

Yeah, with a TTL, and on each round you just check the time to see if it's expired.
yeah just call gettimeofday() to see if it expired yet.
Obviously you don't use clock-TTL.
Sorry, I couldn't resist.