-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Closed
Labels
area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.type-performanceIssue relates to performance or code sizeIssue relates to performance or code size
Description
- Do not use
Closure.clone
to create clones of the:sync_body
closure - instead change kernel transformation to put:sync_body
into another closure and call that closure to produce a copy of:sync_body
. Prototype change improves performance in JIT mode by 3x. - Disable argument type checks for
sync-yielding
functions because their arguments are guaranteed to match. - In
_SyncIterator
recognizeyield*
of a_SyncIterable
and track the top of the iterator stack explicitly rather than delegating downwards which makes deep recursiveyield*
ineffecient. (Apparently dart2js does that which makes it more efficient than VM /cc @rakudrama ).
Related issue(PR) on Flutter side (flutter/flutter#36303). /cc @jonahwilliams
/fyi @mkustermann
srawlins and amaurel
Metadata
Metadata
Assignees
Labels
area-vmUse area-vm for VM related issues, including code coverage, and the AOT and JIT backends.Use area-vm for VM related issues, including code coverage, and the AOT and JIT backends.type-performanceIssue relates to performance or code sizeIssue relates to performance or code size