tailcallhq / tailcall

High Performance GraphQL Runtime
https://tailcall.run
Apache License 2.0
1.29k stars 254 forks source link

perf: optimize batch api without delay #3107

Open laststylebender14 opened 1 week ago

laststylebender14 commented 1 week ago

Summary:
Briefly describe the changes made in this PR.

Issue Reference(s):
Fixes #... (Replace "..." with the issue number)

Build & Testing:

Checklist:

codecov[bot] commented 1 week ago

Codecov Report

Attention: Patch coverage is 96.25668% with 14 lines in your changes missing coverage. Please review.

Project coverage is 87.05%. Comparing base (46d7756) to head (fa1a74d).

Files with missing lines Patch % Lines
src/core/path.rs 93.91% 7 Missing :warning:
src/core/ir/model.rs 76.47% 4 Missing :warning:
src/core/data_loader/http_merge.rs 99.19% 1 Missing :warning:
src/core/ir/eval_context.rs 96.15% 1 Missing :warning:
src/core/ir/eval_http.rs 92.85% 1 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #3107 +/- ## ========================================== + Coverage 86.93% 87.05% +0.11% ========================================== Files 275 277 +2 Lines 26889 27245 +356 ========================================== + Hits 23375 23717 +342 - Misses 3514 3528 +14 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


🚨 Try these New Features:

github-actions[bot] commented 4 days ago

🐰 Bencher Report

Branch3107/merge
Testbedbenchmarking-runner

⚠️ WARNING: No Threshold found!

Without a Threshold, no Alerts will ever be generated.

Click here to create a new Threshold
For more information, see the Threshold documentation.
To only post results if a Threshold exists, set the --ci-only-thresholds CLI flag.

Click to view all benchmark results
BenchmarkLatencynanoseconds (ns)
from_json_bench📈 view plot
⚠️ NO THRESHOLD
6,309,900.00
group_by📈 view plot
⚠️ NO THRESHOLD
481.05
input/args.missing📈 view plot
⚠️ NO THRESHOLD
22.18
input/args.nested.existing📈 view plot
⚠️ NO THRESHOLD
43.85
input/args.nested.missing📈 view plot
⚠️ NO THRESHOLD
37.96
input/args.root📈 view plot
⚠️ NO THRESHOLD
37.27
input/headers.existing📈 view plot
⚠️ NO THRESHOLD
30.82
input/headers.missing📈 view plot
⚠️ NO THRESHOLD
31.45
input/value.missing📈 view plot
⚠️ NO THRESHOLD
25.57
input/value.nested.existing📈 view plot
⚠️ NO THRESHOLD
44.54
input/value.nested.missing📈 view plot
⚠️ NO THRESHOLD
38.67
input/value.root📈 view plot
⚠️ NO THRESHOLD
40.25
input/vars.existing📈 view plot
⚠️ NO THRESHOLD
7.78
input/vars.missing📈 view plot
⚠️ NO THRESHOLD
8.30
synth_nested📈 view plot
⚠️ NO THRESHOLD
94,851.00
synth_nested_borrow📈 view plot
⚠️ NO THRESHOLD
44,189.00
test_batched_body📈 view plot
⚠️ NO THRESHOLD
1,916.10
test_batched_body #2📈 view plot
⚠️ NO THRESHOLD
1,527,700.00
test_data_loader📈 view plot
⚠️ NO THRESHOLD
400,580.00
test_handle_request📈 view plot
⚠️ NO THRESHOLD
132,150.00
test_handle_request_jit📈 view plot
⚠️ NO THRESHOLD
62,957.00
test_http_execute_method📈 view plot
⚠️ NO THRESHOLD
15,570.00
with_mustache_expressions📈 view plot
⚠️ NO THRESHOLD
1,094.20
with_mustache_literal📈 view plot
⚠️ NO THRESHOLD
691.62
🐰 View full continuous benchmarking report in Bencher
github-actions[bot] commented 2 days ago

🐰 Bencher Report

Branchperf/optimize-batch-api-without-delay-in-some-scenarios
Testbedbenchmarking-runner

🚨 3 Alerts

BenchmarkMeasure
Units
ViewBenchmark Result
(Result Δ%)
Upper Boundary
(Limit %)
input/value.missingLatency
nanoseconds (ns)
📈 plot
🚨 alert (🔔)
🚷 threshold
25.21
(+7.17%)
24.94
(101.06%)
input/value.nested.missingLatency
nanoseconds (ns)
📈 plot
🚨 alert (🔔)
🚷 threshold
38.58
(+5.66%)
38.42
(100.40%)
input/value.rootLatency
nanoseconds (ns)
📈 plot
🚨 alert (🔔)
🚷 threshold
45.24
(+15.12%)
42.80
(105.71%)
Click to view all benchmark results
BenchmarkLatencyBenchmark Result
nanoseconds (ns)
(Result Δ%)
Upper Boundary
nanoseconds (ns)
(Limit %)
from_json_bench📈 view plot
🚷 view threshold
6,238,700.00
(-0.07%)
6,391,208.00
(97.61%)
group_by📈 view plot
🚷 view threshold
482.88
(-1.49%)
513.15
(94.10%)
input/args.missing📈 view plot
🚷 view threshold
21.91
(-11.97%)
29.11
(75.25%)
input/args.nested.existing📈 view plot
🚷 view threshold
42.66
(-4.87%)
48.41
(88.12%)
input/args.nested.missing📈 view plot
🚷 view threshold
37.81
(-1.12%)
41.02
(92.17%)
input/args.root📈 view plot
🚷 view threshold
38.42
(-5.20%)
44.28
(86.75%)
input/headers.existing📈 view plot
🚷 view threshold
30.99
(-2.49%)
34.16
(90.73%)
input/headers.missing📈 view plot
🚷 view threshold
29.88
(-3.65%)
34.02
(87.83%)
input/value.missing📈 view plot
🚨 view alert (🔔)
🚷 view threshold
25.21
(+7.17%)
24.94
(101.06%)
input/value.nested.existing📈 view plot
🚷 view threshold
44.85
(+3.90%)
45.74
(98.05%)
input/value.nested.missing📈 view plot
🚨 view alert (🔔)
🚷 view threshold
38.58
(+5.66%)
38.42
(100.40%)
input/value.root📈 view plot
🚨 view alert (🔔)
🚷 view threshold
45.24
(+15.12%)
42.80
(105.71%)
input/vars.existing📈 view plot
🚷 view threshold
8.08
(-1.06%)
9.38
(86.12%)
input/vars.missing📈 view plot
🚷 view threshold
8.81
(-12.80%)
13.37
(65.89%)
synth_nested📈 view plot
🚷 view threshold
102,760.00
(-16.97%)
160,080.15
(64.19%)
synth_nested_borrow📈 view plot
🚷 view threshold
35,517.00
(-50.31%)
108,590.30
(32.71%)
test_batched_body📈 view plot
🚷 view threshold
1,840.00
(-3.08%)
1,962.89
(93.74%)
test_batched_body #2📈 view plot
🚷 view threshold
1,546,700.00
(+1.35%)
1,603,966.24
(96.43%)
test_data_loader📈 view plot
🚷 view threshold
390,220.00
(-3.61%)
432,902.61
(90.14%)
test_handle_request📈 view plot
🚷 view threshold
129,570.00
(-2.74%)
142,984.46
(90.62%)
test_handle_request_jit📈 view plot
🚷 view threshold
52,485.00
(-51.06%)
156,984.86
(33.43%)
test_http_execute_method📈 view plot
🚷 view threshold
14,745.00
(+1.98%)
15,175.48
(97.16%)
with_mustache_expressions📈 view plot
🚷 view threshold
1,118.80
(+0.60%)
1,181.40
(94.70%)
with_mustache_literal📈 view plot
🚷 view threshold
688.93
(-3.00%)
762.23
(90.38%)
🐰 View full continuous benchmarking report in Bencher