lepichudoesdev@ohiodeck in chai_deps_test via π¦ on master
$> ./Invoke-Benchmark.ps1; ./Invoke-BenchmarkWarm.ps1
π Starting benchmark suite for 32 packages...
============================================
π¦ Package 1/32
π Benchmark: com.google.code.gson:gson:2.10.1
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.52s (1 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.89s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.42s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.google.code.gson_gson_2.10.1.json
=====================================
π¦ Package 2/32
π Benchmark: org.apache.commons:commons-lang3:3.14.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.43s (1 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.62s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.63s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.commons_commons-lang3_3.14.0.json
=====================================
π¦ Package 3/32
π Benchmark: joda-time:joda-time:2.12.5
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.38s (2 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 7.43s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.50s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/joda-time_joda-time_2.12.5.json
=====================================
π¦ Package 4/32
π Benchmark: org.slf4j:slf4j-api:2.0.9
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.33s (1 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.05s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.46s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.slf4j_slf4j-api_2.0.9.json
=====================================
π¦ Package 5/32
π Benchmark: com.google.code.findbugs:jsr305:3.0.2
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.30s (1 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.87s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.48s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.google.code.findbugs_jsr305_3.0.2.json
=====================================
π¦ Package 6/32
π Benchmark: org.projectlombok:lombok:1.18.30
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.40s (1 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.00s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.52s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.projectlombok_lombok_1.18.30.json
=====================================
π¦ Package 7/32
π Benchmark: junit:junit:4.13.2
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.43s (2 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 7.88s (2 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.54s (2 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/junit_junit_4.13.2.json
=====================================
π¦ Package 8/32
π Benchmark: org.apache.commons:commons-text:1.11.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.71s (2 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 7.95s (2 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.81s (2 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.commons_commons-text_1.11.0.json
=====================================
π¦ Package 9/32
π Benchmark: com.squareup.okhttp3:okhttp:4.12.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.56s (8 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.04s (8 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.87s (7 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.squareup.okhttp3_okhttp_4.12.0.json
=====================================
π¦ Package 10/32
π Benchmark: com.google.guava:guava:33.0.0-jre
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.61s (7 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.36s (7 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.86s (6 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.google.guava_guava_33.0.0-jre.json
=====================================
π¦ Package 11/32
π Benchmark: org.apache.httpcomponents:httpclient:4.5.14
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.61s (4 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.80s (4 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.79s (4 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.httpcomponents_httpclient_4.5.14.json
=====================================
π¦ Package 12/32
π Benchmark: com.fasterxml.jackson.core:jackson-databind:2.16.1
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.75s (3 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.78s (3 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 5.62s (3 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.fasterxml.jackson.core_jackson-databind_2.16.1.json
=====================================
π¦ Package 13/32
π Benchmark: io.netty:netty-all:4.1.104.Final
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.84s (31 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 12.38s (35 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.96s (35 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/io.netty_netty-all_4.1.104.Final.json
=====================================
π¦ Package 14/32
π Benchmark: org.apache.logging.log4j:log4j-core:2.22.1
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 3.33s (25 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.61s (2 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 5.38s (2 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.logging.log4j_log4j-core_2.22.1.json
=====================================
π¦ Package 15/32
π Benchmark: org.mockito:mockito-core:5.8.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.97s (4 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.61s (4 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 5.03s (4 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.mockito_mockito-core_5.8.0.json
=====================================
π¦ Package 16/32
π Benchmark: com.h2database:h2:2.2.224
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.44s (1 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.18s (1 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.63s (1 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.h2database_h2_2.2.224.json
=====================================
π¦ Package 17/32
π Benchmark: org.postgresql:postgresql:42.7.1
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 1.22s (10 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.31s (2 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.75s (2 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.postgresql_postgresql_42.7.1.json
=====================================
π¦ Package 18/32
π Benchmark: redis.clients:jedis:5.1.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 1.03s (16 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.67s (5 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.92s (5 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/redis.clients_jedis_5.1.0.json
=====================================
π¦ Package 19/32
π Benchmark: io.dropwizard:dropwizard-core:4.0.5
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 4.45s (90 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 13.37s (90 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 9.16s (91 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/io.dropwizard_dropwizard-core_4.0.5.json
=====================================
π¦ Package 20/32
π Benchmark: org.hibernate:hibernate-core:6.4.1.Final
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 2.13s (17 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 10.24s (17 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 6.35s (17 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.hibernate_hibernate-core_6.4.1.Final.json
=====================================
π¦ Package 21/32
π Benchmark: io.quarkus:quarkus-core:3.6.4
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 2.59s (35 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 12.16s (36 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 7.19s (36 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/io.quarkus_quarkus-core_3.6.4.json
=====================================
π¦ Package 22/32
π Benchmark: org.springframework.boot:spring-boot-starter-web:3.2.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 2.75s (34 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 11.95s (34 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 8.41s (34 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.springframework.boot_spring-boot-starter-web_3.2.0.json
=====================================
π¦ Package 23/32
π Benchmark: org.springframework.boot:spring-boot-starter-data-jpa:3.2.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 4.68s (48 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 13.84s (48 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 10.48s (48 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.springframework.boot_spring-boot-starter-data-jpa_3.2.0.json
=====================================
π¦ Package 24/32
π Benchmark: com.amazonaws:aws-java-sdk-s3:1.12.631
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 1.31s (14 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.35s (14 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 5.82s (14 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.amazonaws_aws-java-sdk-s3_1.12.631.json
=====================================
π¦ Package 25/32
π Benchmark: org.apache.kafka:kafka-clients:3.7.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 1.65s (5 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.87s (5 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 5.90s (5 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.kafka_kafka-clients_3.7.0.json
=====================================
π¦ Package 26/32
π Benchmark: io.micronaut:micronaut-http-server-netty:4.2.3
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 1.26s (26 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 9.11s (26 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 5.63s (26 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/io.micronaut_micronaut-http-server-netty_4.2.3.json
=====================================
π¦ Package 27/32
π Benchmark: org.jetbrains.kotlin:kotlin-stdlib:1.9.22
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 0.40s (2 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 8.69s (2 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 4.72s (2 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.jetbrains.kotlin_kotlin-stdlib_1.9.22.json
=====================================
π¦ Package 28/32
π Benchmark: org.apache.spark:spark-core_2.13:3.5.3
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 15.96s (113 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 29.57s (117 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 22.09s (118 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.spark_spark-core_2.13_3.5.3.json
=====================================
π¦ Package 29/32
π Benchmark: io.grpc:grpc-all:1.60.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 5.19s (66 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 16.15s (66 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 10.02s (66 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/io.grpc_grpc-all_1.60.0.json
=====================================
π¦ Package 30/32
π Benchmark: org.apache.flink:flink-streaming-java:1.18.0
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 6.03s (32 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 14.26s (32 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 10.72s (32 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/org.apache.flink_flink-streaming-java_1.18.0.json
=====================================
π¦ Package 31/32
π Benchmark: com.google.cloud:google-cloud-storage:2.30.1
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 7.62s (62 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 23.20s (62 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 8.94s (62 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/com.google.cloud_google-cloud-storage_2.30.1.json
=====================================
π¦ Package 32/32
π Benchmark: software.amazon.awssdk:s3:2.21.42
=====================================
π§Ή Clearing caches for Chai...
1οΈβ£ Testing Chai...
β Chai: 3.26s (44 files)
π§Ή Clearing caches for Maven...
2οΈβ£ Testing Maven...
β Maven: 10.97s (43 files)
π§Ή Clearing caches for Gradle...
3οΈβ£ Testing Gradle...
β Gradle: 6.70s (43 files)
π§Ή Post-test cleanup...
π Results saved: ./bench/software.amazon.awssdk_s3_2.21.42.json
=====================================
β
Benchmark suite complete!
π Individual results: ./bench/<package>.json
π Summary: ./bench/_summary.json
π Final Results:
============================================
Tool Avg Median Min Max Runs
---- --- ------ --- --- ----
Chai 2.29s 1s 0.3s 15.96s 32
Gradle 6.51s 4.99s 4.42s 22.09s 32
Maven 10.97s 9.14s 7.43s 29.57s 32
π Performance Analysis:
Average: Chai is 4.79x faster than Maven (2.29s vs 10.97s)
Average: Chai is 2.84x faster than Gradle (2.29s vs 6.51s)
Median: Chai is 9.14x faster than Maven (1s vs 9.14s)
Median: Chai is 4.99x faster than Gradle (1s vs 4.99s)
π‘ Per-package speedup:
Package Chai Maven Gradle vs Maven vs Gradle
------- ---- ----- ------ -------- ---------
com.google.code.findbugs:jsr305:3.0.2 0.3s 8.87s 4.48s 29.4x 14.9x
org.slf4j:slf4j-api:2.0.9 0.33s 8.05s 4.46s 24.4x 13.5x
org.jetbrains.kotlin:kotlin-stdlib:1.9.22 0.4s 8.69s 4.72s 21.6x 11.7x
com.h2database:h2:2.2.224 0.44s 9.18s 4.63s 21x 10.6x
org.apache.commons:commons-lang3:3.14.0 0.43s 8.62s 4.63s 20.1x 10.8x
org.projectlombok:lombok:1.18.30 0.4s 8s 4.52s 19.9x 11.3x
joda-time:joda-time:2.12.5 0.38s 7.43s 4.5s 19.7x 11.9x
junit:junit:4.13.2 0.43s 7.88s 4.54s 18.2x 10.5x
com.google.code.gson:gson:2.10.1 0.52s 8.89s 4.42s 17.1x 8.5x
com.squareup.okhttp3:okhttp:4.12.0 0.56s 9.04s 4.87s 16.1x 8.7x
com.google.guava:guava:33.0.0-jre 0.61s 9.36s 4.86s 15.4x 8x
io.netty:netty-all:4.1.104.Final 0.84s 12.38s 4.96s 14.7x 5.9x
org.apache.httpcomponents:httpclient:4.5.14 0.61s 8.8s 4.79s 14.4x 7.8x
com.fasterxml.jackson.core:jackson-databind:2.16.1 0.75s 8.78s 5.62s 11.7x 7.5x
org.apache.commons:commons-text:1.11.0 0.71s 7.95s 4.81s 11.1x 6.7x
org.mockito:mockito-core:5.8.0 0.97s 8.61s 5.03s 8.9x 5.2x
redis.clients:jedis:5.1.0 1.03s 8.67s 4.92s 8.4x 4.8x
org.postgresql:postgresql:42.7.1 1.22s 9.31s 4.75s 7.6x 3.9x
io.micronaut:micronaut-http-server-netty:4.2.3 1.26s 9.11s 5.63s 7.2x 4.5x
com.amazonaws:aws-java-sdk-s3:1.12.631 1.31s 9.35s 5.82s 7.1x 4.4x
org.apache.kafka:kafka-clients:3.7.0 1.65s 8.87s 5.9s 5.4x 3.6x
org.hibernate:hibernate-core:6.4.1.Final 2.13s 10.24s 6.35s 4.8x 3x
io.quarkus:quarkus-core:3.6.4 2.59s 12.16s 7.19s 4.7x 2.8x
org.springframework.boot:spring-boot-starter-web:3.2.0 2.75s 11.95s 8.41s 4.4x 3.1x
software.amazon.awssdk:s3:2.21.42 3.26s 10.97s 6.7s 3.4x 2.1x
io.grpc:grpc-all:1.60.0 5.19s 16.15s 10.02s 3.1x 1.9x
io.dropwizard:dropwizard-core:4.0.5 4.45s 13.37s 9.16s 3x 2.1x
com.google.cloud:google-cloud-storage:2.30.1 7.62s 23.2s 8.94s 3x 1.2x
org.springframework.boot:spring-boot-starter-data-jpa:3.2.0 4.68s 13.84s 10.48s 3x 2.2x
org.apache.logging.log4j:log4j-core:2.22.1 3.33s 9.61s 5.38s 2.9x 1.6x
org.apache.flink:flink-streaming-java:1.18.0 6.03s 14.26s 10.72s 2.4x 1.8x
org.apache.spark:spark-core_2.13:3.5.3 15.96s 29.57s 22.09s 1.9x 1.4x
π Distribution by package size:
Category Packages
-------- --------
{Small (1-5), Medium (6-20), Large (21-50)} 20
Large (21-50) 8
Very Large (50+) 4
π₯ Starting WARM CACHE benchmark suite for 32 packages...
============================================
π₯ Pre-populating Maven cache with all packages...
Caching: com.google.code.gson:gson:2.10.1
Caching: org.apache.commons:commons-lang3:3.14.0
Caching: joda-time:joda-time:2.12.5
Caching: org.slf4j:slf4j-api:2.0.9
Caching: com.google.code.findbugs:jsr305:3.0.2
Caching: org.projectlombok:lombok:1.18.30
Caching: junit:junit:4.13.2
Caching: org.apache.commons:commons-text:1.11.0
Caching: com.squareup.okhttp3:okhttp:4.12.0
Caching: com.google.guava:guava:33.0.0-jre
Caching: org.apache.httpcomponents:httpclient:4.5.14
Caching: com.fasterxml.jackson.core:jackson-databind:2.16.1
Caching: io.netty:netty-all:4.1.104.Final
Caching: org.apache.logging.log4j:log4j-core:2.22.1
Caching: org.mockito:mockito-core:5.8.0
Caching: com.h2database:h2:2.2.224
Caching: org.postgresql:postgresql:42.7.1
Caching: redis.clients:jedis:5.1.0
Caching: io.dropwizard:dropwizard-core:4.0.5
Caching: org.hibernate:hibernate-core:6.4.1.Final
Caching: io.quarkus:quarkus-core:3.6.4
Caching: org.springframework.boot:spring-boot-starter-web:3.2.0
Caching: org.springframework.boot:spring-boot-starter-data-jpa:3.2.0
Caching: com.amazonaws:aws-java-sdk-s3:1.12.631
Caching: org.apache.kafka:kafka-clients:3.7.0
Caching: io.micronaut:micronaut-http-server-netty:4.2.3
Caching: org.jetbrains.kotlin:kotlin-stdlib:1.9.22
Caching: org.apache.spark:spark-core_2.13:3.5.3
Caching: io.grpc:grpc-all:1.60.0
Caching: org.apache.flink:flink-streaming-java:1.18.0
Caching: com.google.cloud:google-cloud-storage:2.30.1
Caching: software.amazon.awssdk:s3:2.21.42
β
Cache populated!
π‘οΈ Running COLD pass to populate dl-test (not benchmarked)...
[1/32] Cold run: com.google.code.gson:gson:2.10.1
[2/32] Cold run: org.apache.commons:commons-lang3:3.14.0
[3/32] Cold run: joda-time:joda-time:2.12.5
[4/32] Cold run: org.slf4j:slf4j-api:2.0.9
[5/32] Cold run: com.google.code.findbugs:jsr305:3.0.2
[6/32] Cold run: org.projectlombok:lombok:1.18.30
[7/32] Cold run: junit:junit:4.13.2
[8/32] Cold run: org.apache.commons:commons-text:1.11.0
[9/32] Cold run: com.squareup.okhttp3:okhttp:4.12.0
[10/32] Cold run: com.google.guava:guava:33.0.0-jre
[11/32] Cold run: org.apache.httpcomponents:httpclient:4.5.14
[12/32] Cold run: com.fasterxml.jackson.core:jackson-databind:2.16.1
[13/32] Cold run: io.netty:netty-all:4.1.104.Final
[14/32] Cold run: org.apache.logging.log4j:log4j-core:2.22.1
[15/32] Cold run: org.mockito:mockito-core:5.8.0
[16/32] Cold run: com.h2database:h2:2.2.224
[17/32] Cold run: org.postgresql:postgresql:42.7.1
[18/32] Cold run: redis.clients:jedis:5.1.0
[19/32] Cold run: io.dropwizard:dropwizard-core:4.0.5
[20/32] Cold run: org.hibernate:hibernate-core:6.4.1.Final
[21/32] Cold run: io.quarkus:quarkus-core:3.6.4
[22/32] Cold run: org.springframework.boot:spring-boot-starter-web:3.2.0
[23/32] Cold run: org.springframework.boot:spring-boot-starter-data-jpa:3.2.0
[24/32] Cold run: com.amazonaws:aws-java-sdk-s3:1.12.631
[25/32] Cold run: org.apache.kafka:kafka-clients:3.7.0
[26/32] Cold run: io.micronaut:micronaut-http-server-netty:4.2.3
[27/32] Cold run: org.jetbrains.kotlin:kotlin-stdlib:1.9.22
[28/32] Cold run: org.apache.spark:spark-core_2.13:3.5.3
[29/32] Cold run: io.grpc:grpc-all:1.60.0
[30/32] Cold run: org.apache.flink:flink-streaming-java:1.18.0
[31/32] Cold run: com.google.cloud:google-cloud-storage:2.30.1
[32/32] Cold run: software.amazon.awssdk:s3:2.21.42
β
Cold pass complete! dl-test/ now fully populated.
π₯ Running WARM benchmark pass (this counts!)...
π¦ Package 1/32
π Benchmark (WARM): com.google.code.gson:gson:2.10.1
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.12s (1 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.29s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.91s (1 files)
π Results saved: ./bench-warm/com.google.code.gson_gson_2.10.1.json
=====================================
π¦ Package 2/32
π Benchmark (WARM): org.apache.commons:commons-lang3:3.14.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (1 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.44s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.73s (1 files)
π Results saved: ./bench-warm/org.apache.commons_commons-lang3_3.14.0.json
=====================================
π¦ Package 3/32
π Benchmark (WARM): joda-time:joda-time:2.12.5
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.15s (2 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.40s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.74s (1 files)
π Results saved: ./bench-warm/joda-time_joda-time_2.12.5.json
=====================================
π¦ Package 4/32
π Benchmark (WARM): org.slf4j:slf4j-api:2.0.9
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.12s (1 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.38s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.74s (1 files)
π Results saved: ./bench-warm/org.slf4j_slf4j-api_2.0.9.json
=====================================
π¦ Package 5/32
π Benchmark (WARM): com.google.code.findbugs:jsr305:3.0.2
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (1 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.41s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.83s (1 files)
π Results saved: ./bench-warm/com.google.code.findbugs_jsr305_3.0.2.json
=====================================
π¦ Package 6/32
π Benchmark (WARM): org.projectlombok:lombok:1.18.30
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (1 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.40s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.73s (1 files)
π Results saved: ./bench-warm/org.projectlombok_lombok_1.18.30.json
=====================================
π¦ Package 7/32
π Benchmark (WARM): junit:junit:4.13.2
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (2 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.43s (2 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.78s (2 files)
π Results saved: ./bench-warm/junit_junit_4.13.2.json
=====================================
π¦ Package 8/32
π Benchmark (WARM): org.apache.commons:commons-text:1.11.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (2 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.34s (2 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.78s (2 files)
π Results saved: ./bench-warm/org.apache.commons_commons-text_1.11.0.json
=====================================
π¦ Package 9/32
π Benchmark (WARM): com.squareup.okhttp3:okhttp:4.12.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (8 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.38s (8 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.77s (7 files)
π Results saved: ./bench-warm/com.squareup.okhttp3_okhttp_4.12.0.json
=====================================
π¦ Package 10/32
π Benchmark (WARM): com.google.guava:guava:33.0.0-jre
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (7 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.39s (7 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.80s (6 files)
π Results saved: ./bench-warm/com.google.guava_guava_33.0.0-jre.json
=====================================
π¦ Package 11/32
π Benchmark (WARM): org.apache.httpcomponents:httpclient:4.5.14
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (4 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.39s (4 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.79s (4 files)
π Results saved: ./bench-warm/org.apache.httpcomponents_httpclient_4.5.14.json
=====================================
π¦ Package 12/32
π Benchmark (WARM): com.fasterxml.jackson.core:jackson-databind:2.16.1
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (3 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.42s (3 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.79s (3 files)
π Results saved: ./bench-warm/com.fasterxml.jackson.core_jackson-databind_2.16.1.json
=====================================
π¦ Package 13/32
π Benchmark (WARM): io.netty:netty-all:4.1.104.Final
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (31 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.61s (35 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.84s (35 files)
π Results saved: ./bench-warm/io.netty_netty-all_4.1.104.Final.json
=====================================
π¦ Package 14/32
π Benchmark (WARM): org.apache.logging.log4j:log4j-core:2.22.1
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.15s (25 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.40s (2 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.79s (2 files)
π Results saved: ./bench-warm/org.apache.logging.log4j_log4j-core_2.22.1.json
=====================================
π¦ Package 15/32
π Benchmark (WARM): org.mockito:mockito-core:5.8.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (4 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.41s (4 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.82s (4 files)
π Results saved: ./bench-warm/org.mockito_mockito-core_5.8.0.json
=====================================
π¦ Package 16/32
π Benchmark (WARM): com.h2database:h2:2.2.224
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (1 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.39s (1 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.78s (1 files)
π Results saved: ./bench-warm/com.h2database_h2_2.2.224.json
=====================================
π¦ Package 17/32
π Benchmark (WARM): org.postgresql:postgresql:42.7.1
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (10 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.39s (2 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.68s (2 files)
π Results saved: ./bench-warm/org.postgresql_postgresql_42.7.1.json
=====================================
π¦ Package 18/32
π Benchmark (WARM): redis.clients:jedis:5.1.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.17s (16 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.38s (5 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.73s (5 files)
π Results saved: ./bench-warm/redis.clients_jedis_5.1.0.json
=====================================
π¦ Package 19/32
π Benchmark (WARM): io.dropwizard:dropwizard-core:4.0.5
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.19s (90 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.71s (90 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 4.04s (91 files)
π Results saved: ./bench-warm/io.dropwizard_dropwizard-core_4.0.5.json
=====================================
π¦ Package 20/32
π Benchmark (WARM): org.hibernate:hibernate-core:6.4.1.Final
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (17 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.46s (17 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.89s (17 files)
π Results saved: ./bench-warm/org.hibernate_hibernate-core_6.4.1.Final.json
=====================================
π¦ Package 21/32
π Benchmark (WARM): io.quarkus:quarkus-core:3.6.4
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.16s (35 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.59s (36 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.88s (36 files)
π Results saved: ./bench-warm/io.quarkus_quarkus-core_3.6.4.json
=====================================
π¦ Package 22/32
π Benchmark (WARM): org.springframework.boot:spring-boot-starter-web:3.2.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.15s (34 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.48s (34 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.87s (34 files)
π Results saved: ./bench-warm/org.springframework.boot_spring-boot-starter-web_3.2.0.json
=====================================
π¦ Package 23/32
π Benchmark (WARM): org.springframework.boot:spring-boot-starter-data-jpa:3.2.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.18s (48 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.52s (48 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.97s (48 files)
π Results saved: ./bench-warm/org.springframework.boot_spring-boot-starter-data-jpa_3.2.0.json
=====================================
π¦ Package 24/32
π Benchmark (WARM): com.amazonaws:aws-java-sdk-s3:1.12.631
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (14 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.46s (14 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.87s (14 files)
π Results saved: ./bench-warm/com.amazonaws_aws-java-sdk-s3_1.12.631.json
=====================================
π¦ Package 25/32
π Benchmark (WARM): org.apache.kafka:kafka-clients:3.7.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.13s (5 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.39s (5 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.90s (5 files)
π Results saved: ./bench-warm/org.apache.kafka_kafka-clients_3.7.0.json
=====================================
π¦ Package 26/32
π Benchmark (WARM): io.micronaut:micronaut-http-server-netty:4.2.3
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (26 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.43s (26 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.79s (26 files)
π Results saved: ./bench-warm/io.micronaut_micronaut-http-server-netty_4.2.3.json
=====================================
π¦ Package 27/32
π Benchmark (WARM): org.jetbrains.kotlin:kotlin-stdlib:1.9.22
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.14s (2 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.38s (2 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.82s (2 files)
π Results saved: ./bench-warm/org.jetbrains.kotlin_kotlin-stdlib_1.9.22.json
=====================================
π¦ Package 28/32
π Benchmark (WARM): org.apache.spark:spark-core_2.13:3.5.3
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.16s (113 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.69s (117 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 4.88s (118 files)
π Results saved: ./bench-warm/org.apache.spark_spark-core_2.13_3.5.3.json
=====================================
π¦ Package 29/32
π Benchmark (WARM): io.grpc:grpc-all:1.60.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.16s (66 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.57s (66 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 4.10s (66 files)
π Results saved: ./bench-warm/io.grpc_grpc-all_1.60.0.json
=====================================
π¦ Package 30/32
π Benchmark (WARM): org.apache.flink:flink-streaming-java:1.18.0
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.15s (32 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.64s (32 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 4.17s (32 files)
π Results saved: ./bench-warm/org.apache.flink_flink-streaming-java_1.18.0.json
=====================================
π¦ Package 31/32
π Benchmark (WARM): com.google.cloud:google-cloud-storage:2.30.1
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.15s (62 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.67s (62 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 4.09s (62 files)
π Results saved: ./bench-warm/com.google.cloud_google-cloud-storage_2.30.1.json
=====================================
π¦ Package 32/32
π Benchmark (WARM): software.amazon.awssdk:s3:2.21.42
=====================================
π₯ Using warm Maven cache and warm JAR cache...
1οΈβ£ Testing Chai (warm)...
β Chai: 0.15s (44 files)
2οΈβ£ Testing Maven (warm)...
β Maven: 1.65s (43 files)
3οΈβ£ Testing Gradle (warm)...
β Gradle: 3.96s (43 files)
π Results saved: ./bench-warm/software.amazon.awssdk_s3_2.21.42.json
=====================================
β
Warm cache benchmark suite complete!
π Individual results: ./bench-warm/<package>.json
π Summary: ./bench-warm/_summary.json
π Final Results (WARM CACHE):
============================================
Tool Avg Median Min Max Runs
---- --- ------ --- --- ----
Chai 0.14s 0.14s 0.12s 0.19s 32
Maven 1.47s 1.42s 1.29s 1.71s 32
Gradle 3.88s 3.82s 3.68s 4.88s 32
π Performance Analysis (WARM):
Average: Chai is 10.5x faster than Maven (0.14s vs 1.47s)
Average: Chai is 27.71x faster than Gradle (0.14s vs 3.88s)
Median: Chai is 10.14x faster than Maven (0.14s vs 1.42s)
Median: Chai is 27.29x faster than Gradle (0.14s vs 3.82s)
π‘ Per-package speedup (WARM):
Package Chai Maven Gradle vs Maven vs Gradle
------- ---- ----- ------ -------- ---------
io.netty:netty-all:4.1.104.Final 0.14s 1.61s 3.84s 11.4x 27.1x
com.google.cloud:google-cloud-storage:2.30.1 0.15s 1.67s 4.09s 11.2x 27.4x
org.slf4j:slf4j-api:2.0.9 0.12s 1.38s 3.74s 11.1x 30x
junit:junit:4.13.2 0.13s 1.43s 3.78s 11.1x 29.4x
org.apache.flink:flink-streaming-java:1.18.0 0.15s 1.64s 4.17s 10.9x 27.5x
software.amazon.awssdk:s3:2.21.42 0.15s 1.65s 3.96s 10.8x 25.8x
com.google.code.findbugs:jsr305:3.0.2 0.13s 1.41s 3.83s 10.8x 29.3x
org.projectlombok:lombok:1.18.30 0.13s 1.4s 3.73s 10.7x 28.7x
com.h2database:h2:2.2.224 0.13s 1.39s 3.78s 10.7x 29x
org.apache.commons:commons-lang3:3.14.0 0.14s 1.44s 3.73s 10.6x 27.4x
com.amazonaws:aws-java-sdk-s3:1.12.631 0.14s 1.46s 3.87s 10.6x 28.2x
com.squareup.okhttp3:okhttp:4.12.0 0.13s 1.38s 3.77s 10.6x 28.9x
org.apache.httpcomponents:httpclient:4.5.14 0.13s 1.39s 3.79s 10.5x 28.7x
com.google.code.gson:gson:2.10.1 0.12s 1.29s 3.91s 10.4x 31.8x
org.hibernate:hibernate-core:6.4.1.Final 0.14s 1.46s 3.89s 10.4x 27.9x
org.apache.spark:spark-core_2.13:3.5.3 0.16s 1.69s 4.88s 10.4x 30x
org.apache.kafka:kafka-clients:3.7.0 0.13s 1.39s 3.9s 10.4x 29.2x
com.fasterxml.jackson.core:jackson-databind:2.16.1 0.14s 1.42s 3.79s 10.3x 27.4x
io.micronaut:micronaut-http-server-netty:4.2.3 0.14s 1.43s 3.79s 10.3x 27.4x
org.jetbrains.kotlin:kotlin-stdlib:1.9.22 0.14s 1.38s 3.82s 10.2x 28.2x
org.mockito:mockito-core:5.8.0 0.14s 1.41s 3.82s 10.2x 27.7x
io.quarkus:quarkus-core:3.6.4 0.16s 1.59s 3.88s 10.2x 24.7x
com.google.guava:guava:33.0.0-jre 0.14s 1.39s 3.8s 10x 27.2x
org.apache.commons:commons-text:1.11.0 0.14s 1.34s 3.78s 9.9x 27.8x
org.springframework.boot:spring-boot-starter-web:3.2.0 0.15s 1.48s 3.87s 9.9x 26x
org.postgresql:postgresql:42.7.1 0.14s 1.39s 3.68s 9.8x 26x
io.grpc:grpc-all:1.60.0 0.16s 1.57s 4.1s 9.7x 25.5x
joda-time:joda-time:2.12.5 0.15s 1.4s 3.74s 9.6x 25.6x
org.apache.logging.log4j:log4j-core:2.22.1 0.15s 1.4s 3.79s 9.2x 24.8x
io.dropwizard:dropwizard-core:4.0.5 0.19s 1.71s 4.04s 8.8x 20.9x
org.springframework.boot:spring-boot-starter-data-jpa:3.2.0 0.18s 1.52s 3.97s 8.5x 22.3x
redis.clients:jedis:5.1.0 0.17s 1.38s 3.73s 8x 21.5x
π Distribution by package size:
Category Packages
-------- --------
{Small (1-5), Medium (6-20), Large (21-50)} 20
Large (21-50) 8
Very Large (50+) 4
lepichudoesdev@ohiodeck in chai_deps_test via π¦ on master in 1029.7s !!!
$>
Last active
February 7, 2026 22:38
-
-
Save LePichu/960acc759a8a907cafcfc351630f2e6e to your computer and use it in GitHub Desktop.
Author
Author
UPDATE (08/02/2025 - 4:01AM)
I did some more optimization, it's even faster now and does proper Parallelism baked into Maven itself, at least I think it is finally; can definitely tinker here and there, but I think it is at the limit, besides that, here are the new tables:
Cold Cache Performance
| Tool | Avg | Median | Min | Max |
|---|---|---|---|---|
| Chai | 2.29s | 1s | 0.3s | 15.96s |
| Gradle | 6.51s | 4.99s | 4.42s | 22.09s |
| Maven | 10.97s | 9.14s | 7.43s | 29.57s |
Warm Cache Performance
| Tool | Avg | Median | Min | Max |
|---|---|---|---|---|
| Chai | 0.14s | 0.14s | 0.12s | 0.19s |
| Gradle | 3.88s | 3.82s | 3.68s | 4.88s |
| Maven | 1.47s | 1.42s | 1.29s | 1.71s |
I am really happy with the new benches, at least it is no longer slower than Gradle on bigger packages; finally maintaining a lead of at least 1.4x, that's fine with me.
β
Benchmark suite complete!
π Individual results: ./bench/<package>.json
π Summary: ./bench/_summary.json
π Final Results:
============================================
Tool Avg Median Min Max Runs
---- --- ------ --- --- ----
Chai 2.29s 1s 0.3s 15.96s 32
Gradle 6.51s 4.99s 4.42s 22.09s 32
Maven 10.97s 9.14s 7.43s 29.57s 32
π Performance Analysis:
Average: Chai is 4.79x faster than Maven (2.29s vs 10.97s)
Average: Chai is 2.84x faster than Gradle (2.29s vs 6.51s)
Median: Chai is 9.14x faster than Maven (1s vs 9.14s)
Median: Chai is 4.99x faster than Gradle (1s vs 4.99s)
π‘ Per-package speedup:
Package Chai Maven Gradle vs Maven vs Gradle
------- ---- ----- ------ -------- ---------
com.google.code.findbugs:jsr305:3.0.2 0.3s 8.87s 4.48s 29.4x 14.9x
org.slf4j:slf4j-api:2.0.9 0.33s 8.05s 4.46s 24.4x 13.5x
org.jetbrains.kotlin:kotlin-stdlib:1.9.22 0.4s 8.69s 4.72s 21.6x 11.7x
com.h2database:h2:2.2.224 0.44s 9.18s 4.63s 21x 10.6x
org.apache.commons:commons-lang3:3.14.0 0.43s 8.62s 4.63s 20.1x 10.8x
org.projectlombok:lombok:1.18.30 0.4s 8s 4.52s 19.9x 11.3x
joda-time:joda-time:2.12.5 0.38s 7.43s 4.5s 19.7x 11.9x
junit:junit:4.13.2 0.43s 7.88s 4.54s 18.2x 10.5x
com.google.code.gson:gson:2.10.1 0.52s 8.89s 4.42s 17.1x 8.5x
com.squareup.okhttp3:okhttp:4.12.0 0.56s 9.04s 4.87s 16.1x 8.7x
com.google.guava:guava:33.0.0-jre 0.61s 9.36s 4.86s 15.4x 8x
io.netty:netty-all:4.1.104.Final 0.84s 12.38s 4.96s 14.7x 5.9x
org.apache.httpcomponents:httpclient:4.5.14 0.61s 8.8s 4.79s 14.4x 7.8x
com.fasterxml.jackson.core:jackson-databind:2.16.1 0.75s 8.78s 5.62s 11.7x 7.5x
org.apache.commons:commons-text:1.11.0 0.71s 7.95s 4.81s 11.1x 6.7x
org.mockito:mockito-core:5.8.0 0.97s 8.61s 5.03s 8.9x 5.2x
redis.clients:jedis:5.1.0 1.03s 8.67s 4.92s 8.4x 4.8x
org.postgresql:postgresql:42.7.1 1.22s 9.31s 4.75s 7.6x 3.9x
io.micronaut:micronaut-http-server-netty:4.2.3 1.26s 9.11s 5.63s 7.2x 4.5x
com.amazonaws:aws-java-sdk-s3:1.12.631 1.31s 9.35s 5.82s 7.1x 4.4x
org.apache.kafka:kafka-clients:3.7.0 1.65s 8.87s 5.9s 5.4x 3.6x
org.hibernate:hibernate-core:6.4.1.Final 2.13s 10.24s 6.35s 4.8x 3x
io.quarkus:quarkus-core:3.6.4 2.59s 12.16s 7.19s 4.7x 2.8x
org.springframework.boot:spring-boot-starter-web:3.2.0 2.75s 11.95s 8.41s 4.4x 3.1x
software.amazon.awssdk:s3:2.21.42 3.26s 10.97s 6.7s 3.4x 2.1x
io.grpc:grpc-all:1.60.0 5.19s 16.15s 10.02s 3.1x 1.9x
io.dropwizard:dropwizard-core:4.0.5 4.45s 13.37s 9.16s 3x 2.1x
com.google.cloud:google-cloud-storage:2.30.1 7.62s 23.2s 8.94s 3x 1.2x
org.springframework.boot:spring-boot-starter-data-jpa:3.2.0 4.68s 13.84s 10.48s 3x 2.2x
org.apache.logging.log4j:log4j-core:2.22.1 3.33s 9.61s 5.38s 2.9x 1.6x
org.apache.flink:flink-streaming-java:1.18.0 6.03s 14.26s 10.72s 2.4x 1.8x
org.apache.spark:spark-core_2.13:3.5.3 15.96s 29.57s 22.09s 1.9x 1.4x
π Distribution by package size:
Category Packages
-------- --------
{Small (1-5), Medium (6-20), Large (21-50)} 20
Large (21-50) 8
Very Large (50+) 4
-------------------------------------------------------------------------------------
β
Warm cache benchmark suite complete!
π Individual results: ./bench-warm/<package>.json
π Summary: ./bench-warm/_summary.json
π Final Results (WARM CACHE):
============================================
Tool Avg Median Min Max Runs
---- --- ------ --- --- ----
Chai 0.14s 0.14s 0.12s 0.19s 32
Maven 1.47s 1.42s 1.29s 1.71s 32
Gradle 3.88s 3.82s 3.68s 4.88s 32
π Performance Analysis (WARM):
Average: Chai is 10.5x faster than Maven (0.14s vs 1.47s)
Average: Chai is 27.71x faster than Gradle (0.14s vs 3.88s)
Median: Chai is 10.14x faster than Maven (0.14s vs 1.42s)
Median: Chai is 27.29x faster than Gradle (0.14s vs 3.82s)
π‘ Per-package speedup (WARM):
Package Chai Maven Gradle vs Maven vs Gradle
------- ---- ----- ------ -------- ---------
io.netty:netty-all:4.1.104.Final 0.14s 1.61s 3.84s 11.4x 27.1x
com.google.cloud:google-cloud-storage:2.30.1 0.15s 1.67s 4.09s 11.2x 27.4x
org.slf4j:slf4j-api:2.0.9 0.12s 1.38s 3.74s 11.1x 30x
junit:junit:4.13.2 0.13s 1.43s 3.78s 11.1x 29.4x
org.apache.flink:flink-streaming-java:1.18.0 0.15s 1.64s 4.17s 10.9x 27.5x
software.amazon.awssdk:s3:2.21.42 0.15s 1.65s 3.96s 10.8x 25.8x
com.google.code.findbugs:jsr305:3.0.2 0.13s 1.41s 3.83s 10.8x 29.3x
org.projectlombok:lombok:1.18.30 0.13s 1.4s 3.73s 10.7x 28.7x
com.h2database:h2:2.2.224 0.13s 1.39s 3.78s 10.7x 29x
org.apache.commons:commons-lang3:3.14.0 0.14s 1.44s 3.73s 10.6x 27.4x
com.amazonaws:aws-java-sdk-s3:1.12.631 0.14s 1.46s 3.87s 10.6x 28.2x
com.squareup.okhttp3:okhttp:4.12.0 0.13s 1.38s 3.77s 10.6x 28.9x
org.apache.httpcomponents:httpclient:4.5.14 0.13s 1.39s 3.79s 10.5x 28.7x
com.google.code.gson:gson:2.10.1 0.12s 1.29s 3.91s 10.4x 31.8x
org.hibernate:hibernate-core:6.4.1.Final 0.14s 1.46s 3.89s 10.4x 27.9x
org.apache.spark:spark-core_2.13:3.5.3 0.16s 1.69s 4.88s 10.4x 30x
org.apache.kafka:kafka-clients:3.7.0 0.13s 1.39s 3.9s 10.4x 29.2x
com.fasterxml.jackson.core:jackson-databind:2.16.1 0.14s 1.42s 3.79s 10.3x 27.4x
io.micronaut:micronaut-http-server-netty:4.2.3 0.14s 1.43s 3.79s 10.3x 27.4x
org.jetbrains.kotlin:kotlin-stdlib:1.9.22 0.14s 1.38s 3.82s 10.2x 28.2x
org.mockito:mockito-core:5.8.0 0.14s 1.41s 3.82s 10.2x 27.7x
io.quarkus:quarkus-core:3.6.4 0.16s 1.59s 3.88s 10.2x 24.7x
com.google.guava:guava:33.0.0-jre 0.14s 1.39s 3.8s 10x 27.2x
org.apache.commons:commons-text:1.11.0 0.14s 1.34s 3.78s 9.9x 27.8x
org.springframework.boot:spring-boot-starter-web:3.2.0 0.15s 1.48s 3.87s 9.9x 26x
org.postgresql:postgresql:42.7.1 0.14s 1.39s 3.68s 9.8x 26x
io.grpc:grpc-all:1.60.0 0.16s 1.57s 4.1s 9.7x 25.5x
joda-time:joda-time:2.12.5 0.15s 1.4s 3.74s 9.6x 25.6x
org.apache.logging.log4j:log4j-core:2.22.1 0.15s 1.4s 3.79s 9.2x 24.8x
io.dropwizard:dropwizard-core:4.0.5 0.19s 1.71s 4.04s 8.8x 20.9x
org.springframework.boot:spring-boot-starter-data-jpa:3.2.0 0.18s 1.52s 3.97s 8.5x 22.3x
redis.clients:jedis:5.1.0 0.17s 1.38s 3.73s 8x 21.5x
π Distribution by package size:
Category Packages
-------- --------
{Small (1-5), Medium (6-20), Large (21-50)} 20
Large (21-50) 8
Very Large (50+) 4
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Summary
I just spent the last 3 days working on this, trying to figure out where I was going wrong, I am giving up, everything works for now, but it cost my sanity and 20+ hours of debugging, even with LLM help it was looking pretty bleak. I am attaching the benchmark table below, I am NOT touching this for the foreseeable future. I spent too much time with Maven's resolution, then compiling it to native code via Graal, and then trying to figure things out with PGO and other performance shenanigans AND then needing to debug Uber JAR shenanigans and crashes caused by reflection. It is VERY OVER for me.
Bench
I will take being only slightly faster than Gr*dle or Maven in cold runs, I have hit a wall, I don't think the resolution is the problem at this point, but it might be; I experimented with
coursierand that came out slower, I am using Maven's own resolver for now (again), it will be staying that way too; unless I feel like maybe using Gradle's resolver and compiling that down to native.ALSO MAJOR NOTE:
UPDATE:
Ran the bench with Gradle Daemon being shared across urns, it still did NOT speed it up at ALL.
Notes
Chai's performance comes from GraalVM Native Image compilation, which eliminates JVM startup overhead (saving ~1.2s per invocation) and enables ahead-of-time optimized code with aggressive inlining. In warm scenarios, Chai uses in-memory HashSet lookups for O(1) dependency checks, while Maven/Gradle pay the JVM startup tax plus XML parsing on every run. For cold downloads, Chai's 128 concurrent HTTP connections parallelize fetching versus Maven's default sequential downloads. The benchmark is fair because both tools resolve the same Maven coordinates from Maven Central, and the two-pass warm design pre-caches POMs and JARs for all tools before measurement. Chai excludes test and provided scope dependencies (not needed at runtime) but aggressively resolves all compile/runtime transitives, explaining why Chai sometimes reports more files than Maven (e.g., log4j-core: 25 vs 2 files). The 10x median speedup in warm scenarios represents the daily developer experience when re-checking dependencies that are already downloaded.