Browse thread
[Caml-list] Strange slowness of input_line on mingw
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Yaron M. Minsky <yminsky@C...> |
| Subject: | Re: [Caml-list] Strange slowness of input_line on mingw |
I don't think any of your explanations explain it: the lines weren't particularly long and I was using ocaml 3.06 on both linux and windows. And I did the test multiple times, in different orders, so the caching is not the issue. And, of course, the weirdest thing is that this appears to be a windows-specific problem. On Linux, there speed difference between wc and my program was quite small. The x70 difference was only found on the mingw builds I tried. (I didn't try a straight cygwin version, since I don't have that build system set up at present.) So, any other ideas, or suggestion as to how to narrow down the problem? Thanks, Yaron On Mon, 2002-10-28 at 10:26, Xavier Leroy wrote: > > I've noticed some strangely slow behavior from input_line on mingw. I > > wrote a simple loop to scan through a file, and found that for a given > > file, it took about 10 seconds to run, whereas wc -l took only a small > > fraction of a second -- the difference was about a factor of 70. This is > > on a W2K machine using mingw. On the other hand, using the same file on a > > linux box, the difference between wc -l and my code was only about a > > factor of 3. > > Any ideas where the big difference might be coming from? The code I > > wrote is attached below. > > input_line has to work a bit harder than wc because it actually copies > the data to strings. However, on my tests with your program (Linux, > OCaml 3.06), this makes essentially no difference: both your code and > wc run at about 50 Mb/s. > > Two possible explanations: > > 1- The file wasn't in the file cache when you timed your program; then you > timed wc, at which time the file was in the file cache. In other > terms, you're measuring the difference between a "cold cache read" and a > "warm cache read". Try measuring wc first :-) > > 2- Your file contains very long lines and you're using OCaml 3.04 or > earlier. There was a performance bug in pre-3.06 versions causing > input_line to run slowly on very long lines (100000 characters or > more). > > - Xavier Leroy > ------------------- > To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr > Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners