deno_core icon indicating copy to clipboard operation
deno_core copied to clipboard

Async op performance roadmap

Open mmastrac opened this issue 1 year ago • 0 comments

Phase 1:

  • [x] unrefOp -> unrefPromise to avoid complex accounting
  • [x] Replace old op tracker with new tracker (#295)
  • [x] Skip scope for op dispatch where possible (we have a new, faster isolate-only function caller for dispatch in rusty_v8)
  • [x] Remove event middlewares entirely from event loop when not used
  • [x] Modules should use promise callbacks instead of polling
  • [ ] ~Replace boolean EventLoopPendingState with "global" counters for faster eval~ (probably won't need to happen - we can skip to wakers)
  • [ ] Re-implement JoinSet on a single task, with a poll_with_scope function to extract one finished op result
  • [ ] Replace timers with deno_core timers
  • [ ] Replace op/resource/timer sanitization with deno_core Rust implementation

Phase 2:

  • [ ] Implement rusty_v8 custom platform to allow us to control task scheduling
  • [ ] Switch event loop to be entirely waker-based
  • [ ] Split realm polling from runtime polling

mmastrac avatar Nov 01 '23 21:11 mmastrac