cloudflare
workerd
BlogDocsChangelog

[o11y] Avoid cloning tail event when dispatching it to single tail worker

#5614
Comparing
felix/112925-stw
(
2fc25b9
) with
main
(
235680b
)
CodSpeed Performance Gauge
+13%
Improvements
1
Untouched
56
Skipped
30

Benchmarks

Skipped (30)

Encode_ASCII_8192[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
584.5 µs*
Encode_ASCII_256[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
530.7 µs*
Encode_TwoByte_256[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
531.7 µs*
Encode_ASCII_32[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
527.6 µs*
Encode_ASCII_1024[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
535 µs*
Encode_OneByte_256[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
529.3 µs*
EncodeInto_OneByte_256[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
541.3 µs*
EncodeInto_ASCII_256[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
538.3 µs*
EncodeInto_TwoByte_256[TextEncoderBenchmark]
src/workerd/tests/bench-text-encoder.c++
Skipped
541 µs*
Encode_ASCII_1024[0/0/1024]
unknown_file
Skipped
3.7 ms*
EncodeInto_ASCII_1024[1/0/1024]
unknown_file
Skipped
2.6 ms*
Encode_TwoByte_256[0/2/256]
unknown_file
Skipped
7.1 ms*
ParseAndSerialize
Mimetype
Skipped
74.9 ms*
Encode_ASCII_256[0/0/256]
unknown_file
Skipped
3.2 ms*
Encode_ASCII_8192[0/0/8192]
unknown_file
Skipped
13.1 ms*
EncodeInto_ASCII_8192[1/0/8192]
unknown_file
Skipped
3.3 ms*
Encode_OneByte_256[0/1/256]
unknown_file
Skipped
5.3 ms*
Encode_ASCII_32[0/0/32]
unknown_file
Skipped
3 ms*
Encode_OneByte_1024[0/1/1024]
unknown_file
Skipped
12.1 ms*
Encode_OneByte_8192[0/1/8192]
unknown_file
Skipped
85.2 ms*
EncodeInto_OneByte_256[1/1/256]
unknown_file
Skipped
4.5 ms*
EncodeInto_OneByte_1024[1/1/1024]
unknown_file
Skipped
10.5 ms*
EncodeInto_OneByte_8192[1/1/8192]
unknown_file
Skipped
66.9 ms*
EncodeInto_ASCII_256[1/0/256]
unknown_file
Skipped
2.6 ms*
EncodeInto_TwoByte_8192[1/2/8192]
unknown_file
Skipped
96.7 ms*
EncodeInto_TwoByte_256[1/2/256]
unknown_file
Skipped
5.4 ms*
Serialize
Mimetype
Skipped
74.6 ms*
EncodeInto_TwoByte_1024[1/2/1024]
unknown_file
Skipped
14.2 ms*
Encode_TwoByte_1024[0/2/1024]
unknown_file
Skipped
19.6 ms*
Encode_TwoByte_8192[0/2/8192]
unknown_file
Skipped
146.2 ms*

Improved

Encode_ASCII_32[TextEncoder][0/0/32]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
+13%
3.4 ms3 ms

Passed

EncodeInto_ASCII_256[TextEncoder][1/0/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
+1%
2.6 ms2.6 ms
request[RegExpBenchmark]
src/workerd/tests/bench-regex.c++
CodSpeed Performance Gauge
0%
7.3 ms7.3 ms
Encode_ASCII_256[TextEncoder][0/0/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
3.2 ms3.2 ms
Encode_OneByte_256[TextEncoder][0/1/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
5.3 ms5.3 ms
EncodeInto_ASCII_8192[TextEncoder][1/0/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
3.3 ms3.3 ms
Encode_ASCII_1024[TextEncoder][0/0/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
3.7 ms3.7 ms
set_append[ApiHeaders]
src/workerd/tests/bench-api-headers.c++
CodSpeed Performance Gauge
0%
11.9 ms11.9 ms
Encode_TwoByte_256[TextEncoder][0/2/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
7.1 ms7.1 ms
request[GlobalScopeBenchmark]
src/workerd/tests/bench-global-scope.c++
CodSpeed Performance Gauge
0%
52.7 ms52.7 ms
EncodeInto_OneByte_8192[TextEncoder][1/1/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
66.9 ms66.9 ms
constructor[ApiHeaders]
src/workerd/tests/bench-api-headers.c++
CodSpeed Performance Gauge
0%
67.6 ms67.6 ms
Encode_OneByte_8192[TextEncoder][0/1/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
85.1 ms85.1 ms
EncodeInto_OneByte_1024[TextEncoder][1/1/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
10.6 ms10.6 ms
Encode_TwoByte_1024[TextEncoder][0/2/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
19.6 ms19.6 ms
JsString_Utf8Length_Utf16_Flat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.5 µs8.5 µs
bm_Immediate
external/capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
3.6 µs3.6 µs
bm_coroCoReturn
external/capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
4.6 µs4.6 µs
JsString_Utf8Length_Latin1_Flat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
1.7 µs1.7 µs
JsString_Utf8Length_Latin1_Flat_32
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
891.1 ns891.1 ns
bm_ReadyNow
external/capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
2.1 µs2.1 µs
bm_coroCoAwaitImmediate
external/capnp-cpp/src/kj/async-bench.c++
CodSpeed Performance Gauge
0%
6.2 µs6.2 µs
JsString_Utf8Length_Latin1_Flat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
4.6 µs4.6 µs
JsString_Utf8Length_Utf16_Flat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
2.7 µs2.7 µs
JsString_Utf8Length_Latin1_Flat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
31 µs31 µs
JsString_Utf8Length_Utf16_Invalid_Flat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
62.8 µs62.8 µs
JsString_Utf8Length_Utf16_Flat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
62.8 µs62.8 µs
JsString_Utf8Length_Utf16_Invalid_Flat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.5 µs8.5 µs
JsString_Utf8Length_Utf16_Invalid_Flat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
2.7 µs2.7 µs
Parse[KjHeaders]
src/workerd/tests/bench-kj-headers.c++
CodSpeed Performance Gauge
0%
44.3 µs44.3 µs
Util_RecursivelyFreeze
src/workerd/tests/bench-util.c++
CodSpeed Performance Gauge
0%
10.8 ms10.8 ms
nullBodyWithStatus[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
10.2 µs10.2 µs
JsString_Utf8Length_Utf16_Invalid_NonFlat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
73.8 µs73.8 µs
JsString_Utf8Length_Utf16_NonFlat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
73.8 µs73.8 µs
ParseAndSerialize
src/workerd/tests/bench-mimetype.c++::Mimetype
CodSpeed Performance Gauge
0%
74.9 ms74.9 ms
JsString_Utf8Length_Latin1_NonFlat_8192
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
42 µs42 µs
EncodeInto_OneByte_256[TextEncoder][1/1/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
4.6 ms4.6 ms
JsString_Utf8Length_Utf16_NonFlat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
16.2 µs16.2 µs
JsString_Utf8Length_Utf16_Invalid_NonFlat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
16.1 µs16.1 µs
EncodeInto_TwoByte_1024[TextEncoder][1/2/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
14.2 ms14.2 ms
JsString_Utf8Length_Latin1_NonFlat_1024
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
12.2 µs12.2 µs
JsString_Utf8Length_Utf16_NonFlat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.9 µs8.9 µs
JsString_Utf8Length_Utf16_Invalid_NonFlat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
8.9 µs8.9 µs
JsString_Utf8Length_Latin1_NonFlat_256
src/workerd/tests/bench-jsstring.c++
CodSpeed Performance Gauge
0%
7.9 µs7.9 µs
EncodeInto_TwoByte_256[TextEncoder][1/2/256]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
5.4 ms5.4 ms
Encode_TwoByte_8192[TextEncoder][0/2/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
146.2 ms146.2 ms
Serialize
src/workerd/tests/bench-mimetype.c++::Mimetype
CodSpeed Performance Gauge
0%
74.6 ms74.6 ms
EncodeInto_TwoByte_8192[TextEncoder][1/2/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
96.7 ms96.7 ms
EncodeInto_ASCII_1024[TextEncoder][1/0/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
2.7 ms2.7 ms
Test_JSON_ENC
src/workerd/tests/bench-json.c++
CodSpeed Performance Gauge
0%
205.5 ms205.5 ms
Test_JSON_DEC
src/workerd/tests/bench-json.c++
CodSpeed Performance Gauge
0%
3.2 s3.2 s
Encode_OneByte_1024[TextEncoder][0/1/1024]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
12.1 ms12.1 ms
bodyWithHeaders[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
24.2 µs24.2 µs
Encode_ASCII_8192[TextEncoder][0/0/8192]
src/workerd/tests/bench-text-encoder.c++
CodSpeed Performance Gauge
0%
13.1 ms13.1 ms
simpleStringBody[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
19.7 µs19.8 µs
jsonResponse[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
0%
34.5 µs34.6 µs
arrayBufferBody[Response]
src/workerd/tests/bench-response.c++
CodSpeed Performance Gauge
-1%
17.3 µs17.4 µs

Commits

Click on a commit to change the comparison range
Base
main
235680b
+12.86%
[o11y] Avoid cloning tail event when dispatching it to single tail worker This could be expensive for events that are large/require several memory allocations. This required fixing how we construct the jsrpc.method attribute, the approach there was never fully working which was shadowed by the event being cloned. Also drop an unused Attribute constructor.
2fc25b9
11 days ago
by fhanau
© 2025 CodSpeed Technology
Home Terms Privacy Docs