I happened to stumble across this.  I’ll admit now that I’ve never touched python.  But I was curious of your example.  Does python maintain the file handle?  I don’t see any explicit handling of the file like in your perl script.  Since if you are opening and then maintaining a file handle in the python script it will of course stomp your perl script.  Mainly because you put the OPEN and CLOSE inside of the loop.  So it’s constantly opening and closing the file handle.  I’ve never seen anyone do that before, and I hope I never see it again.  It should have looked like this:

 

#!/usr/bin/perl
 
open(DATA, "data.test");
for ($i = 0; $i < 20; $i++) {
    @Data = "">
}
close(DATA);

 

 

When I did a quick test with a 3MB file I had in my directory I got these results by changing the perl script.

 

 

My test script:

 

      1 #!/usr/bin/perl

      2

      3 open DATA,"<export_data.txt";

      4 for (my $i = 0; $i < 20; $i++) {

      5     my @data = "">

      6 }

      7 close DATA;

      8

      9 1;

 

 

With the open/close outside of the loop.

[EMAIL PROTECTED] (11:05:35) ~]$ time ./test.pl

 

real    0m1.293s

user    0m0.071s

sys     0m0.036s

 

With the open/close inside of the loop

[EMAIL PROTECTED] (11:06:56) ~]$ time ./test.pl

 

real    0m1.854s

user    0m1.612s

sys     0m0.114s

 

 

 

So using a poorly written perl script for a performance comparison isn’t really fair.  If you fix your perl script I’m sure you’ll see drastic performance increases.

 

Jon

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to