Files
vert.x/BENCHMARKING.md
2017-12-15 16:45:01 +01:00

1.3 KiB

Microbenchmarks

A few JMH benchmarks are available to measure performance of some Vert.x sensistive parts.

The benchmarks are executed with biased locking enabled.

The benchmarks configures a JMH executor that uses VertxThread.

Benchmarks are located in the src/test/benchmarks folder.

Note that these benchmarks have been added to quickly see the impact of changes but do not replace real benchmarking done in a lab.

How-to

Package the JMH microbenchmarks

> mvn package -DskipTests -Pbenchmarks

Run them all

> java -jar target/vertx-core-$VERSION-benchmarks.jar

HttpHeaders benchmarks

  • HeadersEncodeBenchmark: encode HttpHeaders
  • `HeadersContainsBenchmarkv: HttpHeaders contains method
  • HeadersSetBenchmark: HttpHeaders set method
> java -jar target/vertx-core-$VERSION-benchmarks.jar HeadersEncodeBenchmark

HttpServer handler benchmarks

The HttpServerHandlerBenchmark benchmarks the HttpServer that deals with HttpRequest and HttpResponse objects. It mainly compares a simple hello world application written with Vert.x and Netty.

> java -jar target/vertx-core-$VERSION-benchmarks.jar HttpServerHandlerBenchmark

Context benchmarks

The RunOnContextBenchmark measures the impact of the disabling thread checks, context timing that are done when running Vert.x context tasks.