You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 25, 2025. It is now read-only.
[nnbd/corelib] Fix performance regression in _SyncIterator.moveNext
In Iteration.deeptree.syncstar benchmark _SyncIterator.moveNext takes
majority of time. If _moveNextFn is cached in a local variable,
then loading a function object out of _moveNextFn closure is hoisted
out of the loop and executed even if _moveNextFn is not called.
The function and cached moveNextFn are also saved to frame.
This extra code results in a slight slowdown of _SyncIterator.moveNext
when _yieldEachIterator != null.
Iteration.deeptree.syncstar(RunTime) 98877 -> 81541 us
(with NNBD core libraries)
Change-Id: Ieac94e106632f9c923eb72d9221bcdecb52fa652
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/138609
Reviewed-by: Martin Kustermann <[email protected]>
Commit-Queue: Alexander Markov <[email protected]>
0 commit comments