comp.lang.ada
 help / color / mirror / Atom feed
* Reading and writing a big file in Ada (GNAT) on Windows XP
@ 2007-04-28  5:03 Fionn Mac Cumhaill
  2007-04-28  5:20 ` Gautier
                   ` (7 more replies)
  0 siblings, 8 replies; 45+ messages in thread
From: Fionn Mac Cumhaill @ 2007-04-28  5:03 UTC (permalink / raw)


I have written a very simple program that runs  on a Windows XP
machine. (Pentium D , I don't remember the clock speed, it is in
middle of Pentium D clock speeds, 2 Gb memory) It is compiled with the
MinGW GNAT 3.4.5 Ada compiler.

All it does is read lines in a loop from a text file with
Ada.Text_IO.Get_Line, does minor modifications on about 80% of the
lines that it reads, and writes the lines to an output file with
Put_Line. 

The modifications consist of replacing a slice of text at the end of a
line with another bit of text. The biggest slice is 10 characters, and
the replacement slice is always smaller than the original slice. An
occasional line of text is about 6000 characters long, but most are
about 700 haracters.  Get_Line reads them into a String variable that
is 10,000 characters long.


The problem is that the input file has more than 10 million lines of
text in it. The program works perfectly, but takes about 5 hours to
run. The Cygwin version of wc can count the lines in the input file in
less than one minute.

The program that produces the file pulls data from a SQL Server 7
running on an 800 MhZ Pentium III machine with 512 Mb and writes it to
a file in 1-1/2 hours. Almost all (99.9%) of the lines are rows from a
database table.

Why is this so slow? 
Do I have an Ada problem, a GNAT problem, or a MinGW problem?



^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2007-05-15 23:03 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-04-28  5:03 Reading and writing a big file in Ada (GNAT) on Windows XP Fionn Mac Cumhaill
2007-04-28  5:20 ` Gautier
2007-04-29 21:17   ` Fionn Mac Cumhaill
2007-04-28  5:25 ` tmoran
2007-04-28  6:56 ` Martin Krischik
2007-04-28 17:12   ` tmoran
2007-04-28 12:41 ` Jeffrey Creem
2007-04-29 21:35   ` Fionn Mac Cumhaill
2007-04-28 13:22 ` (see below)
2007-04-28 17:56 ` Simon Wright
2007-04-28 18:28   ` Jeffrey Creem
2007-04-29  7:20     ` Simon Wright
2007-04-29 21:44     ` Fionn Mac Cumhaill
2007-04-29 21:42   ` Fionn Mac Cumhaill
2007-04-30  0:48     ` Jeffrey R. Carter
2007-04-30  2:30       ` Fionn Mac Cumhaill
2007-04-30  4:21         ` tmoran
2007-04-28 19:12 ` Jeffrey R. Carter
2007-04-29 21:46   ` Fionn Mac Cumhaill
2007-05-01 14:10     ` Fionn Mac Cumhaill
2007-05-06 21:55     ` Quarc
2007-05-02  7:46 ` george
2007-05-03  6:31   ` Fionn Mac Cumhaill
2007-05-03 20:00     ` Simon Wright
2007-05-04  4:35       ` Jeffrey R. Carter
2007-05-04  4:45       ` Fionn Mac Cumhaill
2007-05-04  6:53       ` Alternative Index implementation? (Was: Reading and writing a big file in Ada (GNAT) on Windows XP) Jacob Sparre Andersen
2007-05-04  7:41         ` Dmitry A. Kazakov
2007-05-04  9:16           ` Copying string slices before calling subroutines? (Was: Alternative Index implementation?) Jacob Sparre Andersen
2007-05-04  9:44             ` Copying string slices before calling subroutines? Jacob Sparre Andersen
2007-05-04 10:14               ` Dmitry A. Kazakov
2007-05-04 12:07                 ` Jeffrey Creem
2007-05-04 12:46                   ` Dmitry A. Kazakov
2007-05-04 22:27                   ` Simon Wright
2007-05-05  7:33                     ` Jacob Sparre Andersen
2007-05-05  7:47                       ` Dmitry A. Kazakov
2007-05-05  7:41                     ` Dmitry A. Kazakov
2007-05-03 20:27     ` Reading and writing a big file in Ada (GNAT) on Windows XP Adam Beneschan
2007-05-03 23:01       ` Randy Brukardt
2007-05-04  0:28         ` Markus E Leypold
2007-05-05 16:26           ` Adam Beneschan
2007-05-05 17:27             ` Markus E Leypold
2007-05-15 23:03               ` Randy Brukardt
2007-05-04 20:04         ` Adam Beneschan
2007-05-05 16:36           ` tmoran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox