I haven't
measured it, but my educated guess is that if you're
reading 16384 frames at a time from a FLAC file on current hardware,
then the difference between reading st_blksize sized blocks and
Uh, actually no. If one reads 4096, 2048, or 1024 frames the result is
the same -- 4 bytes less than st_blksize -- EVERY syscall. Try it. In
any case, I didn't optimize anything like that yet. It was a design
discussion. I was saying that's one more reason why it's good to have
the VIO layer, since there is no userspace cache.
non-st_blksize sized blocks will be absolutley
swamped, by disk
latencies, cache latencies, scheduling latencies and file
decoding overhead.
You seem to mix up latency and CPU load? A program can have low
latency, yet high(er than necessary) CPU load.
I think you missed the point.
The point is that if you set out to measure the difference
(in CPU load or in latency) between reading st_blksize size
blocks and st_blocksize - 4 blocks at the libsndfile API level,
your measurements would be so swamped with noise from other
factors that any differences would be statistically irrelevant.
Erik
--
----------------------------------------------------------------------
Erik de Castro Lopo