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: | Xavier Leroy <xavier.leroy@i...> |
| Subject: | Re: [Caml-list] Strange slowness of input_line on mingw |
> 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