Skip to content

Partition muzzle tasks with the same method as build and tests #9077

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

Merged
merged 3 commits into from
Jul 7, 2025

Conversation

smola
Copy link
Member

@smola smola commented Jul 1, 2025

What Does This Do

  • Instead of writeMuzzleTasksToFile and a way to partition tasks externally in the CI config, just use the same partitioning scheme we use for build and test tasks. It's also a simpler setup.
  • ./gradlew :runMuzzle -PtaskPartitionCount=$NORMALIZED_NODE_TOTAL -PtaskPartition=$NORMALIZED_NODE_INDEX

Motivation

  • Aligning muzzle partitioning scheme with the others opens the possibility of partitioned build caches.
  • But even without that, it's simpler and we don't maintain 2 partition methods.

Additional Notes

Contributor Checklist

Jira ticket: [PROJ-IDENT]

@smola smola added tag: no release notes Changes to exclude from release notes comp: tooling Build & Tooling labels Jul 1, 2025
@pr-commenter
Copy link

pr-commenter bot commented Jul 1, 2025

Benchmarks

Startup

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master smola/muzzle-splits
git_commit_date 1751525551 1751528526
git_commit_sha 5353d51 1601be4
release_version 1.51.0-SNAPSHOT~5353d512d0 1.51.0-SNAPSHOT~1601be4b47
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1751530419 1751530419
ci_job_id 1011507740 1011507740
ci_pipeline_id 69525445 69525445
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-8rvuafw3 6.8.0-1030-aws #32~22.04.1-Ubuntu SMP Thu Jun 5 08:38:24 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-8rvuafw3 6.8.0-1030-aws #32~22.04.1-Ubuntu SMP Thu Jun 5 08:38:24 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
module Agent Agent
parent None None

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 44 metrics, 9 unstable metrics.

Startup time reports for petclinic
gantt
    title petclinic - global startup overhead: candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.001 s) : 0, 1001426
Total [baseline] (10.697 s) : 0, 10697424
Agent [candidate] (994.603 ms) : 0, 994603
Total [candidate] (10.629 s) : 0, 10628647
section appsec
Agent [baseline] (1.182 s) : 0, 1181979
Total [baseline] (10.786 s) : 0, 10785897
Agent [candidate] (1.183 s) : 0, 1182843
Total [candidate] (10.734 s) : 0, 10734375
section iast
Agent [baseline] (1.128 s) : 0, 1127971
Total [baseline] (10.815 s) : 0, 10815317
Agent [candidate] (1.132 s) : 0, 1131522
Total [candidate] (10.814 s) : 0, 10813556
section profiling
Agent [baseline] (1.244 s) : 0, 1243945
Total [baseline] (10.912 s) : 0, 10912428
Agent [candidate] (1.245 s) : 0, 1244738
Total [candidate] (10.985 s) : 0, 10984587
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.001 s -
Agent appsec 1.182 s 180.553 ms (18.0%)
Agent iast 1.128 s 126.545 ms (12.6%)
Agent profiling 1.244 s 242.518 ms (24.2%)
Total tracing 10.697 s -
Total appsec 10.786 s 88.473 ms (0.8%)
Total iast 10.815 s 117.893 ms (1.1%)
Total profiling 10.912 s 215.004 ms (2.0%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 994.603 ms -
Agent appsec 1.183 s 188.24 ms (18.9%)
Agent iast 1.132 s 136.918 ms (13.8%)
Agent profiling 1.245 s 250.135 ms (25.1%)
Total tracing 10.629 s -
Total appsec 10.734 s 105.728 ms (1.0%)
Total iast 10.814 s 184.909 ms (1.7%)
Total profiling 10.985 s 355.94 ms (3.3%)
gantt
    title petclinic - break down per module: candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (692.172 ms) : 0, 692172
BytebuddyAgent [candidate] (687.017 ms) : 0, 687017
GlobalTracer [baseline] (242.795 ms) : 0, 242795
GlobalTracer [candidate] (241.611 ms) : 0, 241611
AppSec [baseline] (30.569 ms) : 0, 30569
AppSec [candidate] (30.41 ms) : 0, 30410
Debugger [baseline] (6.06 ms) : 0, 6060
Debugger [candidate] (6.034 ms) : 0, 6034
Remote Config [baseline] (678.684 µs) : 0, 679
Remote Config [candidate] (678.212 µs) : 0, 678
Telemetry [baseline] (8.246 ms) : 0, 8246
Telemetry [candidate] (8.177 ms) : 0, 8177
section appsec
BytebuddyAgent [baseline] (715.089 ms) : 0, 715089
BytebuddyAgent [candidate] (716.13 ms) : 0, 716130
GlobalTracer [baseline] (237.135 ms) : 0, 237135
GlobalTracer [candidate] (237.135 ms) : 0, 237135
IAST [baseline] (22.249 ms) : 0, 22249
IAST [candidate] (22.252 ms) : 0, 22252
AppSec [baseline] (171.961 ms) : 0, 171961
AppSec [candidate] (171.779 ms) : 0, 171779
Debugger [baseline] (5.862 ms) : 0, 5862
Debugger [candidate] (5.849 ms) : 0, 5849
Remote Config [baseline] (636.707 µs) : 0, 637
Remote Config [candidate] (609.151 µs) : 0, 609
Telemetry [baseline] (8.201 ms) : 0, 8201
Telemetry [candidate] (8.251 ms) : 0, 8251
section iast
BytebuddyAgent [baseline] (805.831 ms) : 0, 805831
BytebuddyAgent [candidate] (808.008 ms) : 0, 808008
GlobalTracer [baseline] (232.106 ms) : 0, 232106
GlobalTracer [candidate] (233.024 ms) : 0, 233024
IAST [baseline] (27.698 ms) : 0, 27698
IAST [candidate] (28.615 ms) : 0, 28615
AppSec [baseline] (27.385 ms) : 0, 27385
AppSec [candidate] (26.833 ms) : 0, 26833
Debugger [baseline] (5.811 ms) : 0, 5811
Debugger [candidate] (5.823 ms) : 0, 5823
Remote Config [baseline] (583.376 µs) : 0, 583
Remote Config [candidate] (572.53 µs) : 0, 573
Telemetry [baseline] (7.841 ms) : 0, 7841
Telemetry [candidate] (7.941 ms) : 0, 7941
section profiling
BytebuddyAgent [baseline] (678.065 ms) : 0, 678065
BytebuddyAgent [candidate] (678.577 ms) : 0, 678577
GlobalTracer [baseline] (360.399 ms) : 0, 360399
GlobalTracer [candidate] (361.471 ms) : 0, 361471
AppSec [baseline] (32.225 ms) : 0, 32225
AppSec [candidate] (34.518 ms) : 0, 34518
Debugger [baseline] (10.673 ms) : 0, 10673
Debugger [candidate] (9.124 ms) : 0, 9124
Remote Config [baseline] (1.391 ms) : 0, 1391
Remote Config [candidate] (670.463 µs) : 0, 670
Telemetry [baseline] (8.772 ms) : 0, 8772
Telemetry [candidate] (8.791 ms) : 0, 8791
ProfilingAgent [baseline] (103.917 ms) : 0, 103917
ProfilingAgent [candidate] (102.992 ms) : 0, 102992
Profiling [baseline] (103.941 ms) : 0, 103941
Profiling [candidate] (103.017 ms) : 0, 103017
Loading
Startup time reports for insecure-bank
gantt
    title insecure-bank - global startup overhead: candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0

    dateFormat X
    axisFormat %s
section tracing
Agent [baseline] (1.001 s) : 0, 1001359
Total [baseline] (8.536 s) : 0, 8536263
Agent [candidate] (995.791 ms) : 0, 995791
Total [candidate] (8.546 s) : 0, 8545525
section iast
Agent [baseline] (1.128 s) : 0, 1128491
Total [baseline] (9.291 s) : 0, 9290885
Agent [candidate] (1.133 s) : 0, 1133371
Total [candidate] (9.245 s) : 0, 9245176
Loading
  • baseline results
Module Variant Duration Δ tracing
Agent tracing 1.001 s -
Agent iast 1.128 s 127.131 ms (12.7%)
Total tracing 8.536 s -
Total iast 9.291 s 754.622 ms (8.8%)
  • candidate results
Module Variant Duration Δ tracing
Agent tracing 995.791 ms -
Agent iast 1.133 s 137.58 ms (13.8%)
Total tracing 8.546 s -
Total iast 9.245 s 699.651 ms (8.2%)
gantt
    title insecure-bank - break down per module: candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0

    dateFormat X
    axisFormat %s
section tracing
BytebuddyAgent [baseline] (692.043 ms) : 0, 692043
BytebuddyAgent [candidate] (687.817 ms) : 0, 687817
GlobalTracer [baseline] (242.89 ms) : 0, 242890
GlobalTracer [candidate] (241.951 ms) : 0, 241951
AppSec [baseline] (30.633 ms) : 0, 30633
AppSec [candidate] (30.405 ms) : 0, 30405
Debugger [baseline] (6.058 ms) : 0, 6058
Debugger [candidate] (5.999 ms) : 0, 5999
Remote Config [baseline] (677.51 µs) : 0, 678
Remote Config [candidate] (674.669 µs) : 0, 675
Telemetry [baseline] (8.228 ms) : 0, 8228
Telemetry [candidate] (8.23 ms) : 0, 8230
section iast
BytebuddyAgent [baseline] (805.506 ms) : 0, 805506
BytebuddyAgent [candidate] (808.927 ms) : 0, 808927
GlobalTracer [baseline] (232.071 ms) : 0, 232071
GlobalTracer [candidate] (233.58 ms) : 0, 233580
IAST [baseline] (28.745 ms) : 0, 28745
IAST [candidate] (28.604 ms) : 0, 28604
AppSec [baseline] (27.001 ms) : 0, 27001
AppSec [candidate] (27.116 ms) : 0, 27116
Debugger [baseline] (5.874 ms) : 0, 5874
Debugger [candidate] (5.844 ms) : 0, 5844
Remote Config [baseline] (585.439 µs) : 0, 585
Remote Config [candidate] (580.634 µs) : 0, 581
Telemetry [baseline] (8.056 ms) : 0, 8056
Telemetry [candidate] (8.02 ms) : 0, 8020
Loading

Load

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master smola/muzzle-splits
git_commit_date 1751525551 1751528526
git_commit_sha 5353d51 1601be4
release_version 1.51.0-SNAPSHOT~5353d512d0 1.51.0-SNAPSHOT~1601be4b47
See matching parameters
Baseline Candidate
application insecure-bank insecure-bank
ci_job_date 1751530063 1751530063
ci_job_id 1011507741 1011507741
ci_pipeline_id 69525445 69525445
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-79zfc1g2 6.8.0-1030-aws #32~22.04.1-Ubuntu SMP Thu Jun 5 08:38:24 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-79zfc1g2 6.8.0-1030-aws #32~22.04.1-Ubuntu SMP Thu Jun 5 08:38:24 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 3 performance improvements and 1 performance regressions! Performance is the same for 8 metrics, 12 unstable metrics.

scenario Δ mean http_req_duration Δ mean throughput candidate mean http_req_duration candidate mean throughput baseline mean http_req_duration baseline mean throughput
scenario:load:insecure-bank:profiling:high_load better
[-555.711µs; -231.721µs] or [-6.072%; -2.532%]
unstable
[-49.065op/s; +94.253op/s] or [-9.678%; +18.590%]
8.758ms 529.594op/s 9.151ms 507.000op/s
scenario:load:insecure-bank:tracing:high_load better
[-685.061µs; -432.678µs] or [-8.359%; -5.279%]
unstable
[-27.221op/s; +143.249op/s] or [-4.963%; +26.119%]
7.637ms 606.469op/s 8.196ms 548.455op/s
scenario:load:petclinic:profiling:high_load worse
[+1.346ms; +2.348ms] or [+2.761%; +4.816%]
unstable
[-11.305op/s; +2.025op/s] or [-11.632%; +2.084%]
50.600ms 92.550op/s 48.753ms 97.190op/s
scenario:load:petclinic:tracing:high_load better
[-2.471ms; -1.669ms] or [-5.449%; -3.681%]
unstable
[-3.810op/s; +11.148op/s] or [-3.647%; +10.673%]
43.267ms 108.125op/s 45.337ms 104.456op/s
Request duration reports for petclinic
gantt
    title petclinic - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0
    dateFormat X
    axisFormat %s
section baseline
no_agent (36.856 ms) : 36546, 37166
.   : milestone, 36856,
appsec (47.964 ms) : 47525, 48403
.   : milestone, 47964,
code_origins (45.479 ms) : 45085, 45873
.   : milestone, 45479,
iast (45.016 ms) : 44626, 45407
.   : milestone, 45016,
profiling (48.753 ms) : 48284, 49222
.   : milestone, 48753,
tracing (45.337 ms) : 44964, 45710
.   : milestone, 45337,
section candidate
no_agent (37.2 ms) : 36899, 37502
.   : milestone, 37200,
appsec (47.681 ms) : 47271, 48091
.   : milestone, 47681,
code_origins (46.336 ms) : 45929, 46743
.   : milestone, 46336,
iast (44.405 ms) : 44002, 44807
.   : milestone, 44405,
profiling (50.6 ms) : 50138, 51062
.   : milestone, 50600,
tracing (43.267 ms) : 42895, 43639
.   : milestone, 43267,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 36.856 ms [36.546 ms, 37.166 ms] -
appsec 47.964 ms [47.525 ms, 48.403 ms] 11.107 ms (30.1%)
code_origins 45.479 ms [45.085 ms, 45.873 ms] 8.622 ms (23.4%)
iast 45.016 ms [44.626 ms, 45.407 ms] 8.16 ms (22.1%)
profiling 48.753 ms [48.284 ms, 49.222 ms] 11.897 ms (32.3%)
tracing 45.337 ms [44.964 ms, 45.71 ms] 8.481 ms (23.0%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 37.2 ms [36.899 ms, 37.502 ms] -
appsec 47.681 ms [47.271 ms, 48.091 ms] 10.481 ms (28.2%)
code_origins 46.336 ms [45.929 ms, 46.743 ms] 9.136 ms (24.6%)
iast 44.405 ms [44.002 ms, 44.807 ms] 7.204 ms (19.4%)
profiling 50.6 ms [50.138 ms, 51.062 ms] 13.4 ms (36.0%)
tracing 43.267 ms [42.895 ms, 43.639 ms] 6.067 ms (16.3%)
Request duration reports for insecure-bank
gantt
    title insecure-bank - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0
    dateFormat X
    axisFormat %s
section baseline
no_agent (4.401 ms) : 4351, 4450
.   : milestone, 4401,
iast (9.317 ms) : 9166, 9469
.   : milestone, 9317,
iast_FULL (14.258 ms) : 13971, 14544
.   : milestone, 14258,
iast_GLOBAL (10.08 ms) : 9906, 10253
.   : milestone, 10080,
profiling (9.151 ms) : 8997, 9306
.   : milestone, 9151,
tracing (8.196 ms) : 8068, 8323
.   : milestone, 8196,
section candidate
no_agent (4.486 ms) : 4433, 4538
.   : milestone, 4486,
iast (9.09 ms) : 8936, 9244
.   : milestone, 9090,
iast_FULL (13.724 ms) : 13448, 14000
.   : milestone, 13724,
iast_GLOBAL (10.271 ms) : 10092, 10450
.   : milestone, 10271,
profiling (8.758 ms) : 8611, 8904
.   : milestone, 8758,
tracing (7.637 ms) : 7530, 7743
.   : milestone, 7637,
Loading
  • baseline results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.401 ms [4.351 ms, 4.45 ms] -
iast 9.317 ms [9.166 ms, 9.469 ms] 4.917 ms (111.7%)
iast_FULL 14.258 ms [13.971 ms, 14.544 ms] 9.857 ms (224.0%)
iast_GLOBAL 10.08 ms [9.906 ms, 10.253 ms] 5.679 ms (129.0%)
profiling 9.151 ms [8.997 ms, 9.306 ms] 4.751 ms (107.9%)
tracing 8.196 ms [8.068 ms, 8.323 ms] 3.795 ms (86.2%)
  • candidate results
Variant Request duration [CI 0.99] Δ no_agent
no_agent 4.486 ms [4.433 ms, 4.538 ms] -
iast 9.09 ms [8.936 ms, 9.244 ms] 4.604 ms (102.6%)
iast_FULL 13.724 ms [13.448 ms, 14.0 ms] 9.238 ms (205.9%)
iast_GLOBAL 10.271 ms [10.092 ms, 10.45 ms] 5.786 ms (129.0%)
profiling 8.758 ms [8.611 ms, 8.904 ms] 4.272 ms (95.2%)
tracing 7.637 ms [7.53 ms, 7.743 ms] 3.151 ms (70.2%)

Dacapo

Parameters

Baseline Candidate
baseline_or_candidate baseline candidate
git_branch master smola/muzzle-splits
git_commit_date 1751525551 1751528526
git_commit_sha 5353d51 1601be4
release_version 1.51.0-SNAPSHOT~5353d512d0 1.51.0-SNAPSHOT~1601be4b47
See matching parameters
Baseline Candidate
application biojava biojava
ci_job_date 1751530544 1751530544
ci_job_id 1011507742 1011507742
ci_pipeline_id 69525445 69525445
cpu_model Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz
kernel_version Linux runner-zfyrx7zua-project-304-concurrent-1-lfde415j 6.8.0-1030-aws #32~22.04.1-Ubuntu SMP Thu Jun 5 08:38:24 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux Linux runner-zfyrx7zua-project-304-concurrent-1-lfde415j 6.8.0-1030-aws #32~22.04.1-Ubuntu SMP Thu Jun 5 08:38:24 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux

Summary

Found 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics.

Execution time for tomcat
gantt
    title tomcat - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0
    dateFormat X
    axisFormat %s
section baseline
no_agent (1.473 ms) : 1461, 1484
.   : milestone, 1473,
appsec (2.394 ms) : 2345, 2443
.   : milestone, 2394,
iast (2.177 ms) : 2115, 2238
.   : milestone, 2177,
iast_GLOBAL (2.227 ms) : 2165, 2289
.   : milestone, 2227,
profiling (2.027 ms) : 1977, 2076
.   : milestone, 2027,
tracing (1.998 ms) : 1950, 2046
.   : milestone, 1998,
section candidate
no_agent (1.475 ms) : 1463, 1486
.   : milestone, 1475,
appsec (2.396 ms) : 2347, 2445
.   : milestone, 2396,
iast (2.185 ms) : 2123, 2247
.   : milestone, 2185,
iast_GLOBAL (2.232 ms) : 2170, 2294
.   : milestone, 2232,
profiling (2.05 ms) : 1999, 2101
.   : milestone, 2050,
tracing (2.017 ms) : 1969, 2066
.   : milestone, 2017,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.473 ms [1.461 ms, 1.484 ms] -
appsec 2.394 ms [2.345 ms, 2.443 ms] 921.424 µs (62.6%)
iast 2.177 ms [2.115 ms, 2.238 ms] 704.264 µs (47.8%)
iast_GLOBAL 2.227 ms [2.165 ms, 2.289 ms] 754.912 µs (51.3%)
profiling 2.027 ms [1.977 ms, 2.076 ms] 554.18 µs (37.6%)
tracing 1.998 ms [1.95 ms, 2.046 ms] 525.719 µs (35.7%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 1.475 ms [1.463 ms, 1.486 ms] -
appsec 2.396 ms [2.347 ms, 2.445 ms] 921.139 µs (62.5%)
iast 2.185 ms [2.123 ms, 2.247 ms] 710.02 µs (48.1%)
iast_GLOBAL 2.232 ms [2.17 ms, 2.294 ms] 756.939 µs (51.3%)
profiling 2.05 ms [1.999 ms, 2.101 ms] 575.272 µs (39.0%)
tracing 2.017 ms [1.969 ms, 2.066 ms] 542.574 µs (36.8%)
Execution time for biojava
gantt
    title biojava - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~1601be4b47, baseline=1.51.0-SNAPSHOT~5353d512d0
    dateFormat X
    axisFormat %s
section baseline
no_agent (15.438 s) : 15438000, 15438000
.   : milestone, 15438000,
appsec (14.982 s) : 14982000, 14982000
.   : milestone, 14982000,
iast (18.638 s) : 18638000, 18638000
.   : milestone, 18638000,
iast_GLOBAL (17.842 s) : 17842000, 17842000
.   : milestone, 17842000,
profiling (15.959 s) : 15959000, 15959000
.   : milestone, 15959000,
tracing (14.784 s) : 14784000, 14784000
.   : milestone, 14784000,
section candidate
no_agent (15.601 s) : 15601000, 15601000
.   : milestone, 15601000,
appsec (15.08 s) : 15080000, 15080000
.   : milestone, 15080000,
iast (18.403 s) : 18403000, 18403000
.   : milestone, 18403000,
iast_GLOBAL (18.055 s) : 18055000, 18055000
.   : milestone, 18055000,
profiling (15.386 s) : 15386000, 15386000
.   : milestone, 15386000,
tracing (14.648 s) : 14648000, 14648000
.   : milestone, 14648000,
Loading
  • baseline results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.438 s [15.438 s, 15.438 s] -
appsec 14.982 s [14.982 s, 14.982 s] -456.0 ms (-3.0%)
iast 18.638 s [18.638 s, 18.638 s] 3.2 s (20.7%)
iast_GLOBAL 17.842 s [17.842 s, 17.842 s] 2.404 s (15.6%)
profiling 15.959 s [15.959 s, 15.959 s] 521.0 ms (3.4%)
tracing 14.784 s [14.784 s, 14.784 s] -654.0 ms (-4.2%)
  • candidate results
Variant Execution Time [CI 0.99] Δ no_agent
no_agent 15.601 s [15.601 s, 15.601 s] -
appsec 15.08 s [15.08 s, 15.08 s] -521.0 ms (-3.3%)
iast 18.403 s [18.403 s, 18.403 s] 2.802 s (18.0%)
iast_GLOBAL 18.055 s [18.055 s, 18.055 s] 2.454 s (15.7%)
profiling 15.386 s [15.386 s, 15.386 s] -215.0 ms (-1.4%)
tracing 14.648 s [14.648 s, 14.648 s] -953.0 ms (-6.1%)

@smola smola marked this pull request as ready for review July 2, 2025 07:13
@smola smola requested review from a team as code owners July 2, 2025 07:13
@smola smola requested review from colin-higgins and dougqh and removed request for a team July 2, 2025 07:13
Copy link
Contributor

@PerfectSlayer PerfectSlayer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Out of curiosity, is there any downside to the build and test partitioning implementation?

@smola
Copy link
Member Author

smola commented Jul 2, 2025

@PerfectSlayer In theory yes: the approach used before ensured there were the same number of modules at each partition. While after the PR, it's based on a modulo of the gradle module path's hash code. So each partition might have different sizes. In practice, the precision of the former method is an illusion, since not every module takes the same time to process.
Accurate partitioning would require statistics on the time each task takes from historical runs. Circle CI had the tooling to do this, but I never got to make it work.

@bric3
Copy link
Contributor

bric3 commented Jul 3, 2025

For reference, the partitioning code in question:

allprojects { project ->
project.ext {
activePartition = true
}
final boolean shouldUseTaskPartitions = project.rootProject.hasProperty("taskPartitionCount") && project.rootProject.hasProperty("taskPartition")
if (shouldUseTaskPartitions) {
final int taskPartitionCount = project.rootProject.property("taskPartitionCount") as int
final int taskPartition = project.rootProject.property("taskPartition") as int
final currentTaskPartition = Math.abs(project.path.hashCode() % taskPartitionCount)
project.setProperty("activePartition", currentTaskPartition == taskPartition)
}
}

@smola smola merged commit eeb36db into master Jul 7, 2025
675 of 676 checks passed
@smola smola deleted the smola/muzzle-splits branch July 7, 2025 07:17
@github-actions github-actions bot added this to the 1.51.0 milestone Jul 7, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
comp: tooling Build & Tooling tag: no release notes Changes to exclude from release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants