Closed ivoanjo closed 2 weeks ago
Benchmark execution time: 2024-10-18 09:47:33
Comparing candidate commit 07765cf in PR branch ivoanjo/hyper-0-to-1-migration
with baseline commit e9a0af0 in branch main
.
Found 9 performance improvements and 11 performance regressions! Performance is the same for 31 metrics, 2 unstable metrics.
execution_time
[+189.721µs; +196.563µs] or [+2.129%; +2.206%]execution_time
[-798.544ns; -798.222ns] or [-39.652%; -39.636%]throughput
[+326093714.989op/s; +326204055.625op/s] or [+65.672%; +65.694%]execution_time
[-798.968ns; -798.521ns] or [-39.671%; -39.648%]throughput
[+326236216.424op/s; +326451720.434op/s] or [+65.704%; +65.748%]execution_time
[+8.208µs; +8.419µs] or [+7.837%; +8.039%]throughput
[-711526.774op/s; -693238.125op/s] or [-7.451%; -7.260%]execution_time
[-799.052ns; -798.782ns] or [-39.677%; -39.663%]throughput
[+326431254.726op/s; +326585499.051op/s] or [+65.740%; +65.771%]execution_time
[+6.151µs; +6.297µs] or [+6.280%; +6.429%]throughput
[-617379.793op/s; -602844.188op/s] or [-6.047%; -5.904%]execution_time
[+5.709µs; +5.864µs] or [+6.424%; +6.598%]throughput
[-697156.632op/s; -678636.376op/s] or [-6.196%; -6.031%]execution_time
[-798.674ns; -798.420ns] or [-39.660%; -39.647%]throughput
[+326236561.725op/s; +326344808.136op/s] or [+65.698%; +65.720%]execution_time
[+5.771µs; +5.928µs] or [+6.829%; +7.015%]throughput
[-776782.802op/s; -755831.075op/s] or [-6.564%; -6.387%]execution_time
[+7.940µs; +8.161µs] or [+7.561%; +7.772%]throughput
[-687707.377op/s; -668794.013op/s] or [-7.221%; -7.023%]execution_time
[-6.244µs; -6.147µs] or [-7.922%; -7.799%]Omitted due to size.
Attention: Patch coverage is 46.66667%
with 32 lines
in your changes missing coverage. Please review.
Project coverage is 71.82%. Comparing base (
2820fd0
) to head (07765cf
). Report is 1 commits behind head on main.
I'm going to go ahead and merge this in! Do feel free to chime in if there's any concerns :D
What does this PR do?
This PR takes the first step to migrate libdatadog from using version 0.x of the hyper http library crate to version 1.x.
Specifically, it enables the recommended "backports" and "deprecated" features from the upgrade guide, which give us warnings and a bridge to start adopting the new APIs from 1.x.
I then did a pass and fixed every deprecation and warning I could find.
Motivation
I've started seeing issues with keeping packages up-to-date because newer versions require hyper 1.x, and the hyper 0.x-based ecosystem is getting increasingly unmaintained/abandoned.
Additional Notes
During this week's weekly meeting, I took an action item to identify what teams needed to be involved in this migration for which packages. These are:
crashtracker
,crashtracker-ffi
,profiling
,profiling-ffi
data-pipeline
ddcommon
,ddcommon-ffi
,live-debugger
ddtelemetry
remote-config
sidecar
,sidecar-ffi
trace-mini-agent
trace-utils
We'll need to move all these packages to hyper 1.x (but not for this PR! :).
How to test the change?
Hopefully our existing test coverage is enough for us to be able to validate that everything is working nicely with these small API changes.