-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Open
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.library-isolate
Description
After the lightweight isolate support is enabled (see #36097) there are a few tasks we might want to do as follow-up work:
Experiment with more data sharing
- Enable sending more object kinds (tracked Issue 46623)
- Explore language-level support for constructing immutable objects.
- Explore runtime based freezing of object graphs
- Explore runtime based immutability by-construction
Performance
- Investigate whether there is lock contention, and if so, find ways to avoid it (already done for symbol lock, ...)
- Investigate whether we would benefit by preventing multiple mutators compiling unopt code for same function at same time
- Investigate installing code without stopping mutators
- Investigate wether we an utilize isolate death as a signal for GC
- Explore making send-and-exit O(1) - transferring receive port ownership as well
- Add pre-emptive scheduler (parallel mutator count is limited, exceeding it relies on cooperative scheduling)
- Avoid doing 2 calls to Dart in eventloop (
lookupHandler()
&invokeMessageHandler()
) - Avoid using OOB messages for hot-reload, instead piggy-back on safepoint level mechanism
- Optimize isolate startup performance (avoid doing many calls to Dart to setup corelibs, possibly bundle them)
Testing
- Investigate instrumenting non-atomic loads/stores in generated code with TSAN to detect races
/cc @aam
zmoshansky, Jonas-Sander, II11II, Solido, saibotma and 5 moregmpassos, TimWhiting, Abdktefane, lubritto, II11II and 1 more
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.library-isolate