
On recent (>2009) Linux, you can call clock_gettime() with
CLOCK_REALTIME_COARSE which is about 6x faster:
https://gist.github.com/3634708
On my workstation calling clock_gettime(CLOCK_REALTIME, ...) and poking the
value into a Haskell struct takes about 70ns, with CLOCK_REALTIME_COARSE
it's about 19ns (with a much lower stddev). Worth using for this
application if it's available. Of course, in Snap we do the "update the
clock every second in a thread" trick also.
G
On Wed, Sep 5, 2012 at 4:10 AM, Kazu Yamamoto
Bryan,
To my experience, the assumption 2) is not right. getttimeofday() is implemented in user land in Linux 3 but it is a system call in Linux 2.
Just a nit: your history here is not correct. gettimeofday has been implemented as a vsyscall for a long time, maybe 5 years. And while it's faster than int 0x80, it's not that much faster: 2x or so on modern hardware.
Thank you for your correction.
To whose who are interested in, additional information can be found from:
http://en.chys.info/2009/01/linux%E2%80%99s-vsyscall/
Anyway, I believe we should avoid gettimeofday as much as possible to implement fast servers.
--Kazu
_______________________________________________ web-devel mailing list web-devel@haskell.org http://www.haskell.org/mailman/listinfo/web-devel
--
Gregory Collins