UPDATE:
This issue was resolved within Netflix/dgs-framework#1092 and released in v5.0.2.
Thx a lot to the whole team taking care of the issue so fast.
The purpose of this repository is to demonstrate a performance degradation that
was introduced in DGS v4.10.4.
This degradation only happens if the graphql-dgs-spring-boot-micrometer
dependency is added.
- Run the
generateJava
gradle task - Start the DemoApplication
- Run the request.sh test file and note down the response times
- Stop the DemoApplication
- Decrease the DGS version in the build.gradle.kts
- Repeat step 2 and 3.
In the following table I averaged the latencies from 3 requests.
DGS | v4.10.2 | v4.10.3 | v4.10.4 | v5.0.0 | v5.0.1 |
---|---|---|---|---|---|
Without graphql-dgs-spring-boot-micrometer |
101ms | 111ms | 104ms | 102ms | 106ms |
With graphql-dgs-spring-boot-micrometer |
145ms | 147ms | 842ms | 867ms | 864ms |
It's clearly visible that there is a huge latency increase with
graphql-dgs-spring-boot-micrometer
enabled when updating from
v4.10.3 to v4.10.4.
Since this shows best if the request contains many input arguments, the test
request.sh file sends 3000 numbers as input arguments.
I raised this issue in the DGS repository:
Netflix/dgs-framework#1089