[squeak-dev] The Inbox: Collections-ul.933.mcz

Marcel Taeumel marcel.taeumel at hpi.de
Tue Apr 27 15:07:18 UTC 2021


+1 I suppose =)

It's faster then:

[OrderedCollection streamContents: [:s | s nextPut: #apple]] bench  

BEFORE: '2,630,000 per second. 380 nanoseconds per run. 16.13677 % GC time.'
AFTER: '3,990,000 per second. 251 nanoseconds per run. 15.89682 % GC time.'

Best,
Marcel
Am 31.03.2021 02:19:03 schrieb commits at source.squeak.org <commits at source.squeak.org>:
Levente Uzonyi uploaded a new version of Collections to project The Inbox:
http://source.squeak.org/inbox/Collections-ul.933.mcz

==================== Summary ====================

Name: Collections-ul.933
Author: ul
Time: 31 March 2021, 2:17:52.141067 am
UUID: b290ad2c-2ed0-4d46-b2fe-12545bf5f31c
Ancestors: Collections-ul.932

- use #ofSize: instead of #new: in SequenceableCollection class >> new:streamContents:, so that it creates a stream on a non-empty collection even if the receiver is OrderedCollection.

=============== Diff against Collections-ul.932 ===============

Item was changed:
----- Method: SequenceableCollection class>>new:streamContents: (in category 'stream creation') -----
new: newSize streamContents: blockWithArg

| stream originalContents |
+ stream := WriteStream on: (self ofSize: newSize).
- stream := WriteStream on: (self new: newSize).
blockWithArg value: stream.
originalContents := stream originalContents.
+ ^originalContents size = stream position
+ ifTrue: [ originalContents ]
+ ifFalse: [ stream contents ]!
- originalContents size = stream position
- ifTrue: [ ^originalContents ]
- ifFalse: [ ^stream contents ]!


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20210427/ba00c09a/attachment.html>


More information about the Squeak-dev mailing list