I didn't know I was using Transcript in a loop. Still, I've changed it to append to a string instead of write to transcript and use print: but now it is quoting the numbers which isn't quite what I'm after and it still takes just as long.
| myFile ios s |
ios := ReadWriteStream on: ''.
s := 'Populate Buffer: ', (Time millisecondsToRun: [ 1 to: 10000 do: [ :x | ios print: x. ios print: String crlf]]) asString , ' millseconds'. Transcript show: s ; cr. Transcript show: 'Position: ', (ios position) asString ; cr.
myFile := StandardFileStream fileNamed: 'c:/squeak/t1.txt'.
Transcript show: 'Output Buffer: ', (Time millisecondsToRun: [ myFile nextPutAll: (ios contents)]) asString, ' milliseconds' ; cr.
myFile close.
Here is the output:
Populate Buffer: 313 millseconds Position: 78894 Output Buffer: 1 milliseconds
So it is writing to Output Buffer pretty quickly but not appending to the stream. Is there a profiler in Squeak I can search for the problem myself with?
Ian
On 10/04/07, Ramon Leon ramon.leon@allresnet.com wrote:
Okay, I tried this and it still seems a bit slow:
| myFile ios |
ios := ReadWriteStream on: ''.
Transcript show: 'Populate Buffer: ', (Time millisecondsToRun: [ 1 to: 10000 do: [ :x | ios nextPutAll: ((x asString) , String crlf) ]]) asString , ' millseconds' ; cr.
Transcript show: 'Position: ', (ios position) asString ; cr.
myFile := StandardFileStream fileNamed: 'c:/test.txt'.
Transcript show: 'Output Buffer: ', (Time millisecondsToRun: [ myFile nextPutAll: (ios contents)]) asString, ' milliseconds' ; cr.
myFile close.
# --
Populate Buffer is showing ~350 milliseconds to run on my system whereas similar code in Perl is showing around 70 milliseconds. Is this the correct way to use the stream?
Thanks,
Ian
On 08/04/07, Bert Freudenberg bert@freudenbergs.de wrote:
Try taking out the Transcript show's from inside the loop, that's very slow.
Ramon Leon http://onsmalltalk.com
Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners