There recently was an interesting SO question on F# Printf.* family of functions:
http://stackoverflow.com/questions/11559440/how-to-manage-debug-printing-in-f
It is known that these functions are very slow. Slow enough for most people to avoid them entirely, despite the advantages they offer in verifying argument types.
What I did not know is that these functions are so slow that a few lines of simple user code can speed them up, without changing the interface:
With this code I get from 2x to 10x speedups. It is suspicous, I am afraid F# does not cache parsing of the format strings. There is no reason why it should not.
Exercise for the reader: fix the code above to be thread-safe.
No comments:
Post a Comment