28 Jan
2009
28 Jan
'09
6:09 a.m.
Daniel Stutzbach
For the "10MB whole contents at once" test, we then have: (assuming the code does no pipelining of disk I/O with decoding)
10MB / 980MB/s to read from disk = 10 ms 10MB / 250MB/s to decode to utf8 = 40 ms 10MB / (10ms + 40ms) = 200 MB/s
In practice, your results shows around 90 MB/s. That's at least vaguely in the same ballpark.
Yes, the remaining CPU time is spent in the IncrementalNewlineDecoder (which does universal newline translation). Antoine.