I/O overhead in opening and writing files
wren ng thornton
wren at freegeek.org
Tue Aug 28 05:24:21 CEST 2012
On 8/27/12 6:25 PM, J Baptist wrote:
>
> Using ByteStrings and the C calls does indeed speed things up a bit, but not much.
> real 0m6.053suser 0m1.480ssys 0m4.550s
> For your interest:The original version (with Strings and openFile): http://hpaste.org/73803Faster (with Strings and c_open): http://hpaste.org/73802Even faster (with ByteStrings and c_open): http://hpaste.org/73801
> The problem may be that even with ByteStrings, we are stuck using show, and thus Strings, at some point.
> Ideas?
Don't use Show.
Show is only there for printing things at the REPL and has no place in
performance-centric code. The bytestring-lexing[1] package has efficient
functions for rendering integral numbers into ByteStrings[2]. And there
are a number of other efficient ByteString renderers as well, such as
blaze-builder[3].
[1] http://hackage.haskell.org/package/bytestring-lexing
[2] Albeit, they haven't been hyper-aggressively optimized (cf.,
readDecimal), but that's because I haven't run into the need for doing
so. If you can demonstrate a real need, I'm willing to spend some time
on it.
[3] http://hackage.haskell.org/package/blaze-builder
--
Live well,
~wren
More information about the Glasgow-haskell-users
mailing list