[lworld] RFR: Prototype inline cursors for List

Roger Riggs Roger.Riggs at oracle.com
Thu Mar 26 18:07:13 UTC 2020


Hi Brian,

I've looked at the code and its not a lot different in the number of 
fetches and conditional branches.
I'll be looking into it further.

Roger


On 3/26/20 1:45 PM, Brian Goetz wrote:
> These don't look so good!  I suspect that the Iterator is performing 
> so well because it's getting good EA, but not sure why cursors aren't 
> doing better?  Guess we'll have to dig into the generated code....
>
> On 3/26/2020 1:14 PM, Roger Riggs wrote:
>> Implementation of Cursors and jmh tests comparing
>> typical List traversal via direct index, iterator,
>> inline cursor, and an iterator implemented on top of cursor.
>>
>> Sample results:
>>
>>                                     (size)  Mode  Cnt Score       
>> Error  Units
>> XArrayListCursorTest.getViaArray            100000  avgt    5 
>> 507793.484  7086.038  ns/op
>> XArrayListCursorTest.getViaCursorForLoop    100000  avgt    5 
>> 656461.958  52488.547  ns/op
>> XArrayListCursorTest.getViaCursorWhileLoop  100000  avgt    5 
>> 641963.323  32219.409  ns/op
>> XArrayListCursorTest.getViaIterator         100000  avgt    5 
>> 558863.817  23539.256  ns/op
>> XArrayListCursorTest.getViaIteratorCurs     100000  avgt    5 
>> 733161.466  33721.881  ns/op
>>
>> -------------
>>
>> Commit messages:
>>   - Prototype inline cursors for List
>>
>> Changes: https://git.openjdk.java.net/valhalla/pull/5/files
>>   Webrev: https://webrevs.openjdk.java.net/valhalla/5/webrev.00
>>    Stats: 2139 lines in 3 files changed: 2139 ins; 0 del; 0 mod
>>    Patch: https://git.openjdk.java.net/valhalla/pull/5.diff
>>    Fetch: git fetch https://git.openjdk.java.net/valhalla 
>> pull/5/head:pull/5
>>
>> PR: https://git.openjdk.java.net/valhalla/pull/5
>



More information about the valhalla-dev mailing list