QUOTE(Liisachan @ May 28 2006, 03:12)

I guess that "20%" part depends on your device, but yes...that IS disturbingly huge.
Indeed. It will depend on your device, which means it is variable between users, and it is a large proportion of the process time. My machine is an Athlon XP 2400; 512MB RAM; Win 2K SP4; 7200 PATA hard drive. A bit outdated nowadays, but not the worst machine by any means.
QUOTE(Liisachan @ May 28 2006, 03:12)

have you already tried something like this, to kill the HD writing lag?
flac in.wav -f -o NUL
Do you think using the NUL device here is a good/valid approach?
I haven't tried that. I would be interested to test this type of approach against Timer's Process Time (CPU only). It's very difficult analysing these things though as no run is the same. Still, we would be able to see if they produced results that appeared to be the same. I would expect that your approach would be valid, yes; but again, I'm by no means an expert. Would ouputting to NUL work with any encoder/application?
QUOTE(Liisachan @ May 28 2006, 03:12)

As for the reading delay, I'm clueless. Just hypothetically, if stdin/out was supported (like lame's "-"), we could use a simple pipeline trick ("BakaInput") which would first load the file into RAM, and then feed it to stdio (should be much faster than reading directly from HD). The only tricky part would be, to make sure for Windows not to use a swap. But the fact is, not every encoder supports STDIO, right? I'm gonna have to think about it more...
Is there a good tool that creates a virtual drive on RAM?
That sounds interesting, but as you say I guess you can't rely on the swap file not coming into play. A timer with a built-in RAM disk sounds pretty cool though. I have seen mention of "RAMDisk XP" in the
MP3 repacker thread, but that's the first I've heard of a RAM disk.
QUOTE(Liisachan @ May 28 2006, 03:12)

Another thing: a "fast" compressor might be fast partly because it uses good io technique, and it is possible that when we compare several tools naively, we are actually not purely comparing the encoding/decoding algos, but are "tricked" by IO hacks. What I mean here is not the HD r/w speed but how well the author of the app optimized the IO part speed-wise. If the app can be a memory eater, it can be faster by using a huge buffer, or maybe buffering the file with one thread while compressing it with another.
So... in theory, using a lot of relatively small samples might be a good idea here. If the file is huge, we will be confused by IO in 2 ways: (1) the physical r/w speed and (2) the tool's i/o algo.
A tool might be created so that it uses least memory (suitable for HW support), and if so, the IO buffer should be very small in size which makes it look slower than another memory-eating app. What is the fair comparison of compression speed? is a rather complicated question to answer... Perhaps we should also check the memory usage, not only speed and compression ratio.
Some interesting points. It sounds like you should be speaking to Josef Pohm! Thomas Becker briefly discussed encoder and IO frame sizes in
this post in the Yalac thread.