Skip to content

Commit 39d2ca5

Browse files
authored
Merge pull request #179 from graphql-java/performance-testing
add blog about performance testing
2 parents 6663a93 + 5cc0231 commit 39d2ca5

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
title: "Automated performance testing for GraphQL Java"
3+
authors: andi
4+
slug: performance
5+
---
6+
7+
GraphQL Java has become a mature and widely adopted library over the past 9.5 years.
8+
And while we continue to maintain, improve and add features, we don't expect revolutionary changes to the core of the library.
9+
10+
As side effect of this maturity it became clear over the least years, that performance is a key aspect that users are interested in.
11+
Especially in larger scale applications performance can have a huge impact on operational costs and user experience.
12+
13+
In GraphQL Java we leverage [JMH aka Java Microbenchmark Harness](https://github.com/openjdk/jmh) to measure and compare different performance aspects.
14+
15+
Historically, performance testing was done manually by running JMH benchmarks on a local machine.
16+
17+
This comes with the obvious flaw that it's not reproducible over time and across different machines. A benchmark run on one developer's machine is not
18+
comparable to a run on another developer's machine (or often even the same machine months later).
19+
20+
We are very happy to share that we have now an automated performance testing setup in place to overcome these limitations by running
21+
the benchmarks in an isolated cloud environment.
22+
23+
Currently, it runs on every commit to the `master` branch and the results are stored in the
24+
[performance results folder](https://github.com/graphql-java/graphql-java/tree/master/performance-results).
25+
You can visualize and compare results with the [JMH Visualizer tool](https://jmh.morethan.io/), a free tool which runs in the browser.
26+
Our goal is to provide clear and reproducible performance improvements over time while preventing any regressions.
27+
28+
This work is sponsored and made possible by [Atlassian](https://www.atlassian.com/) and we are very grateful for their support.
29+
30+
31+
32+
33+
34+

0 commit comments

Comments
 (0)