Henrik you lost me
> In the first example, you are making a single string with all A's of size > 9000 repeated 500 times. > In the second example, you are making 9000 strings with all A's of size 10000 > repeated 500 times. Why? >>> An optimization is to use a Stream. Here is my source code: >>> === >>> MessageTally spyOn: >>> [ 500 timesRepeat: [ >>> | str | >>> *str := WriteStream on: (String new)*. >>> 9000 timesRepeat: [ str nextPut: $A ]]]. >>> === >>> >>> The result appears after *812 ms*, which is a large improvement. >>> Now, we could optimize again using the preallocation. Here is my source >>> code: >>> >>> ==== >>> MessageTally spyOn: >>> [ 500 timesRepeat: [ >>> | str | >>> *str := WriteStream on: (String new: 10000)*. >>> 9000 timesRepeat: [ str nextPutAll: 'A' ]]]. >>> ==== >>> >>> And the result is strange: it makes 2 times slower to display the result. >>> The result appears after 1656 ms. > > In the first example, you are making a single string with all A's of size > 9000 repeated 500 times. > In the second example, you are making 9000 strings with all A's of size 10000 > repeated 500 times.
