1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-24 15:19:26 -05:00
denoland-deno/ops/optimizer_tests
Bartek Iwańczuk ef20aedfa8
perf(ops): directly respond for eager ops (#18683)
This commit changes "eager ops" to directly return a response value
instead of calling "opresponse" callback in JavaScript. This saves
one boundary crossing and has a fantastic impact on the "async_ops.js"
benchmark:

```
v1.32.4
$ deno run cli/bench/async_ops.js
time 329 ms rate 3039513
time 322 ms rate 3105590
time 307 ms rate 3257328
time 301 ms rate 3322259
time 303 ms rate 3300330
time 306 ms rate 3267973
time 300 ms rate 3333333
time 301 ms rate 3322259
time 301 ms rate 3322259
time 301 ms rate 3322259
time 302 ms rate 3311258
time 301 ms rate 3322259
time 302 ms rate 3311258
time 302 ms rate 3311258
time 303 ms rate 3300330
```

```
this branch
$ ./target/release/deno run -A cli/bench/async_ops.js
time 257 ms rate 3891050
time 248 ms rate 4032258
time 251 ms rate 3984063
time 246 ms rate 4065040
time 238 ms rate 4201680
time 227 ms rate 4405286
time 228 ms rate 4385964
time 229 ms rate 4366812
time 228 ms rate 4385964
time 226 ms rate 4424778
time 226 ms rate 4424778
time 227 ms rate 4405286
time 228 ms rate 4385964
time 227 ms rate 4405286
time 228 ms rate 4385964
time 227 ms rate 4405286
time 229 ms rate 4366812
time 228 ms rate 4385964
```

Prerequisite for https://github.com/denoland/deno/pull/18652
2023-04-18 17:41:50 +02:00
..
async_nop.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
async_nop.out perf(ops): directly respond for eager ops (#18683) 2023-04-18 17:41:50 +02:00
async_nop.rs feat(ops): implement fast lazy async ops (#16579) 2022-11-11 19:14:53 +05:30
async_result.expected fix(ops): disallow memory slices as inputs to async ops (#16738) 2023-01-15 07:40:01 +00:00
async_result.out perf(ops): directly respond for eager ops (#18683) 2023-04-18 17:41:50 +02:00
async_result.rs fix(ops): disallow memory slices as inputs to async ops (#16738) 2023-01-15 07:40:01 +00:00
callback_options.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
callback_options.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
callback_options.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
cow_str.expected fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
cow_str.out fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
cow_str.rs feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
f64_slice.expected feat(ext/node): implement node:v8 (#17806) 2023-02-17 18:48:09 +05:30
f64_slice.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
f64_slice.rs feat(ext/node): implement node:v8 (#17806) 2023-02-17 18:48:09 +05:30
incompatible_1.expected refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
incompatible_1.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
incompatible_1.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
issue16934.expected fix(ops): disallow auto-borrowing OpState across potential await point (#16952) 2022-12-05 21:40:22 +05:30
issue16934.out perf(ops): directly respond for eager ops (#18683) 2023-04-18 17:41:50 +02:00
issue16934.rs fix(ops): disallow auto-borrowing OpState across potential await point (#16952) 2022-12-05 21:40:22 +05:30
issue16934_fast.expected fix(ops): disallow auto-borrowing OpState across potential await point (#16952) 2022-12-05 21:40:22 +05:30
issue16934_fast.out perf(ops): directly respond for eager ops (#18683) 2023-04-18 17:41:50 +02:00
issue16934_fast.rs fix(ops): disallow auto-borrowing OpState across potential await point (#16952) 2022-12-05 21:40:22 +05:30
op_blob_revoke_object_url.expected fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
op_blob_revoke_object_url.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_blob_revoke_object_url.rs feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
op_ffi_ptr_value.expected feat(ext/ffi): Replace pointer integers with v8::External objects (#16889) 2023-02-22 19:32:38 +02:00
op_ffi_ptr_value.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_ffi_ptr_value.rs feat(ext/ffi): Replace pointer integers with v8::External objects (#16889) 2023-02-22 19:32:38 +02:00
op_print.expected fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
op_print.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_print.rs feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
op_state.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
op_state.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_state.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
op_state_basic1.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
op_state_basic1.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_state_basic1.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
op_state_generics.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
op_state_generics.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_state_generics.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
op_state_result.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
op_state_result.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_state_result.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
op_state_warning.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
op_state_warning.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_state_warning.rs feat(ops): implement fast lazy async ops (#16579) 2022-11-11 19:14:53 +05:30
op_state_with_transforms.expected perf(ops): Remove unnecessary fast call fallback options usage (#17585) 2023-01-29 19:35:08 +05:30
op_state_with_transforms.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
op_state_with_transforms.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
opstate_with_arity.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
opstate_with_arity.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
opstate_with_arity.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
option_arg.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
option_arg.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
option_arg.rs perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
owned_string.expected fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
owned_string.out fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
owned_string.rs feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
param_mut_binding_warning.expected refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
param_mut_binding_warning.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
param_mut_binding_warning.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
raw_ptr.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
raw_ptr.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
raw_ptr.rs feat(ops): support raw pointer arguments (#16826) 2022-11-26 20:07:43 +05:30
serde_v8_value.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
serde_v8_value.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
serde_v8_value.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
strings.expected fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
strings.out fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
strings.rs feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
strings_result.expected fix(ops): fallback when FastApiOneByteString is not utf8 (#18518) 2023-03-31 11:43:20 -06:00
strings_result.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
strings_result.rs feat(ops): reland fast zero copy string arguments (#17996) 2023-03-03 19:04:10 +05:30
u64_result.expected refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
u64_result.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
u64_result.rs refactor(ops): Rewrite fast call optimizer and codegen (#16514) 2022-11-10 17:23:31 +05:30
uint8array.expected perf(ops): Remove unnecessary fast call fallback options usage (#17585) 2023-01-29 19:35:08 +05:30
uint8array.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
uint8array.rs perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
unit_result.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
unit_result.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
unit_result.rs perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
unit_result2.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
unit_result2.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
unit_result2.rs feat: Stabilize Deno.TcpConn.setNoDelay() and Deno.TcpConn.setKeepAlive() (#17003) 2022-12-14 00:54:11 +01:00
unit_ret.expected perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
unit_ret.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
unit_ret.rs perf(ops): Reenable fast unit result optimization (#16827) 2022-11-27 04:48:17 +00:00
wasm_op.expected perf(ops): Remove unnecessary fast call fallback options usage (#17585) 2023-01-29 19:35:08 +05:30
wasm_op.out perf: const op declaration (#18288) 2023-03-31 11:43:20 -06:00
wasm_op.rs feat(ops): fast calls for Wasm (#16776) 2022-11-27 19:24:28 +05:30