From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id QAA04587; Mon, 28 Oct 2002 16:26:23 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id QAA04582 for ; Mon, 28 Oct 2002 16:26:22 +0100 (MET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id g9SFQF509057; Mon, 28 Oct 2002 16:26:15 +0100 (MET) Received: (from xleroy@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id QAA04707; Mon, 28 Oct 2002 16:26:14 +0100 (MET) Date: Mon, 28 Oct 2002 16:26:14 +0100 From: Xavier Leroy To: "Yaron M. Minsky" Cc: Caml List Subject: Re: [Caml-list] Strange slowness of input_line on mingw Message-ID: <20021028162614.A2882@pauillac.inria.fr> References: <32026.209.9.234.140.1035468351.squirrel@dragonfly.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0i In-Reply-To: <32026.209.9.234.140.1035468351.squirrel@dragonfly.localdomain>; from yminsky@CS.Cornell.EDU on Thu, Oct 24, 2002 at 10:05:51AM -0400 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > 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