Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(core): generate inlined wrappers for async ops #16428

Merged
merged 10 commits into from
Oct 27, 2022

Conversation

littledivy
Copy link
Member

@littledivy littledivy commented Oct 26, 2022

V8's JIT can do a better job knowing the argument count and also enable fast call path (in future).

This also lets us call async ops without opAsync:

const { ops } = Deno.core;
await ops.op_void_async();

this patch: 4405286 ops/sec
main: 3508771 ops/sec

@littledivy
Copy link
Member Author

+bench

@denobot
Copy link
Collaborator

denobot commented Oct 27, 2022

⏳ Provisioning metal...

id: aaa19b64-bbe3-4d13-a5b9-b5e11f94f95b
metro: unknown

Use +bench status <id> for status

@denobot
Copy link
Collaborator

denobot commented Oct 27, 2022

Command Mean [ms] Min…Max [ms]
deno run equinix-metal-test/nop.js 12.0 ± 0.8 11.5…20.7
./deno run equinix-metal-test/nop.js 11.5 ± 0.1 11.2…11.9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants