[web-devel] new fast-logger and date-cache

Gregory Collins greg at gregorycollins.net
Wed Sep 5 13:17:30 CEST 2012


On Wed, Sep 5, 2012 at 12:32 PM, Gregory Collins <greg at gregorycollins.net>wrote:

> 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.
>

Of course, I made a rookie mistake here, and can't reproduce the results
because a single call is too short to benchmark accurately. Adding a
replicateM_ 1000 gives:

CLOCK_PROCESS_CPUTIME_ID: 195.0717 ns
CLOCK_REALTIME: 24.92609 ns
CLOCK_REALTIME_COARSE: 14.47882 ns
CLOCK_MONOTONIC: 25.00275 ns
CLOCK_MONOTONIC_COARSE: 15.60754 ns

Updated the gist accordingly.

G
-- 
Gregory Collins <greg at gregorycollins.net>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/web-devel/attachments/20120905/c6f4a492/attachment.htm>


More information about the web-devel mailing list