File Performance Q.?

Diego Gomez Deck DiegoGomezDeck at ConsultAr.com
Fri May 10 20:39:19 UTC 2002


Hello...

The code you run in Python is a little different, becaouse readLines() read all the file in RAM and then you iterate the list...

If your disk is fragmented, this could be a big diference...

I don't mean that it's the only reason.

Cheers,

Diego Gomez Deck


>I ran a couple of simple tests to compare relative speed between Python 
>and Squeak on something I've done before.
>
>The tests are very simple and are not meant to imply anything.
>I simply opened a file read it line by line writing each line to a new file.
>
>All tests were conducted on the same machine after fresh restarts with 
>no other software running except that which is always loaded upon 
>restart. The machine is a PII 266 with WinME.
>Below are the tests and code.
>
>I was naively expecting Squeak to be faster but was very surprised.
>Python's results are in seconds and Squeak's in milliseconds.
>
>Am I doing something wrong in the Squeak code to cause it to be up to 
>100 times slower? Or is this a case of the best tool for the job?
>
>Any help or comments appreciated.
>
>Jimmie Houchin
>
>Python Tests:
>FileTest.py
>import time
>
>def fileTest():
>     beginningTime = time.time()
>     file1 = 'c:\\jimmie\\test\\testfile.txt'
>     file2 = 'c:\\jimmie\\test\\testfile2.txt'
>
>     oldfile = open(file1, 'r')
>     newfile = open(file2, 'w')
>
>     for line in oldfile.readlines():
>         newfile.write(line)
>     newfile.flush()
>
>     oldfile.close()
>     newfile.close()
>
>     finalTime = time.time()
>     totalTime = finalTime - beginningTime
>     print totalTime
>
>
>Python 2.2 (#28, Dec 21 2001, 12:21:22) [MSC 32 bit (Intel)] on win32
>Type "copyright", "credits" or "license" for more information.
>IDLE 0.8 -- press F1 for help
> >>> import FileTest
> >>> FileTest.fileTest()
>5.55000007153
> >>> FileTest.fileTest()
>4.50999999046
> >>> FileTest.fileTest()
>4.23000001907
> >>> FileTest.fileTest()
>4.33999991417
> >>> FileTest.fileTest()
>4.27999997139
> >>> FileTest.fileTest()
>2.97000002861
> >>> FileTest.fileTest()
>2.96000003815
> >>> FileTest.fileTest()
>2.97000002861
>
>
>
>
>
>Squeak Tests
>Squeak 3.2gamma4811
>In a workspace
>
>Transcript show:
>[file1 := CrLfFileStream new.
>file2 := CrLfFileStream new.
>file1 open: 'c:\jimmie\test\testfile.txt' forWrite: false.
>file2 open: 'c:\jimmie\test\testfile2.txt' forWrite: true.
>
>[file1 atEnd] whileFalse:
>[file2 nextPutAll: file1 nextLine.
>  file2 nextPutAll: String cr].
>
>file2 flush.
>file2 close.
>file1 close] timeToRun.
>
>In the Transcript:
>304141
>298161
>302502
>
>
>
>



More information about the Squeak-dev mailing list