Sorry, didn't meant to take this off list. Taking it back to the caml list.
I don't quite understand how this whole benchmark holds together. Could you post the C code? I don't understand the differences between (1), (2) and (3) well enough to explain where the factor of 100 comes in.
y
On Mon, Oct 25, 2010 at 07:59:17AM -0400, Yaron Minsky wrote:It because the cost of switching to another thread is too big. I did the
> What's the advantage of using mmap here?� Why not just have a few worker
> threads available for doing file io?� Then you can use the ordinary file
> API, and you don't need to spin up a brand new thread for each request.
following benchmarks some time ago (in C): i made three programs reading
a 100Mo file using a loop in the following way:
1 - just use read, without threads
2 - launch a thread at each iteration
3 - use only one thread created before entering the loop
And the results were the following:
- in any case (2) and (3) gave the same result,
- when the file was not in the cache, the execution time was the same
for the three programs,
- when the file was in the cache, (2) and (3) were about 100 times
slower than (1)
Jérémie