[Glass] Can I avoid ReversedRangeIndexReadStream >> atEnd ?

Mariano Martinez Peck via Glass glass at lists.gemtalksystems.com
Wed Oct 25 07:01:38 PDT 2017

Hi Dale,

I am doing a query like this (as per your recommendation):

nearestQueryFor: aDate on: aCollection
| query |
query := GsQuery fromFormula: self nearestQuery  on: aCollection.
query bind: 'targetDate' to: aDate.
^ query

^ nearestQuery ifNil: [
nearestQuery := GsQueryPredicate fromQueryStatement:  'each.date <=

And when I use it, I do this:

query := self nearestQueryFor: dateToCompare on: (self indexingDict at:
stream := query reversedReadStream.
            ^ stream atEnd
                ifTrue: [ nil ]
                ifFalse: [ stream next ]

I am profiling some code that uses this a lot and I see that quite some
time is spent in the #atEnd.
I attach a part of the profiling output to see what I mean.

Do you see something obvious I can speed up?

Thanks in advance,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20171025/90eff426/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Screen Shot 2017-10-25 at 10.59.36 AM.png
Type: image/png
Size: 101573 bytes
Desc: not available
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20171025/90eff426/attachment-0001.png>

More information about the Glass mailing list