Skip to content

Commit d520107

Browse files
Update README.md
1 parent 9fa86a4 commit d520107

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Java Logger Benchmark
22

3-
This project is a benchmark for several Java logging libraries. It is using [JMH](https://github.com/openjdk/jmh) to measure the performance of the
4-
different logging libraries. The goal of the project is to help people that work on performance critical projects to choose the best logger and setup.
3+
This project is a benchmark for several Java logging libraries.
4+
It is using [JMH](https://github.com/openjdk/jmh) to measure the performance of the different logging libraries.
5+
The goal of the project is to help people that work on performance critical projects to choose the best logger and setup.
56

67
## What libraries are tested?
78

@@ -24,12 +25,12 @@ command:
2425
./mvnw clean test
2526
```
2627

27-
The JMH benchmark is executed by several parameters that are all defined in the
28-
`com.openelements.logger.api.BenchmarkConstants` class in the `logger-api` module.
28+
The JMH benchmark is executed by several parameters that are all defined in the `com.openelements.logger.api.BenchmarkConstants` class in the `logger-api` module.
2929

3030
## What is tested
3131

32-
Since not all loggers provide the same set of functionalities the `com.openelements.logger.api.Logger` interface contains all features that should be tested. That feature set reflects the features that a modern logging api should provide:
32+
Since not all loggers provide the same set of functionalities the `com.openelements.logger.api.Logger` interface contains all features that should be tested.
33+
That feature set reflects the features that a modern logging api should provide:
3334

3435
- log messages
3536
- add stack trace (by Throwable)
@@ -44,14 +45,16 @@ Since some loggers does not provide some of the features a simple implementation
4445
## How to add a new logging library?
4546

4647
To add a new logging library, you need to create a new module that contains the implementation of the logging library.
47-
The `logger-api` module contains a simple interface that needs to be implemented by the logging library. By doing so a
48-
benchmark for the new logging library can be created that executes the `LogLikeHell` Runnable. All logging libraries
49-
execute that code to generate comparable results.
48+
The `logger-api` module contains a simple interface that needs to be implemented by the logging library.
49+
By doing so a benchmark for the new logging library can be created that executes the `LogLikeHell` Runnable.
50+
All logging libraries execute that code to generate comparable results.
5051

5152
## What are the results?
5253

53-
I still need to run the code in a long running benchmark. The metric "Operations per second" defines how often `LogLikeHell` has been executed per second. For a short running benchmark the values look like that (
54-
sorted from fastest to slowest). All bechmarks have been executed on release `v0.1.0`by using the [Temurin JDK](https://adoptium.net) version 17.
54+
I still need to run the code in a long running benchmark.
55+
The metric "Operations per second" defines how often `LogLikeHell` has been executed per second.
56+
For a short running benchmark the values look like that (sorted from fastest to slowest).
57+
All bechmarks have been executed on release `v0.1.0` by using the [Temurin JDK](https://adoptium.net) version 17.
5558

5659
### Execution on M1 Max MacBook with 64 GB RAM and local SSD
5760

@@ -118,7 +121,7 @@ The benchmark has been executed on 240 threads in parallel:
118121

119122
### CPU usage
120123

121-
The Chronicle Logger consumes 100% CPU (all 40 vCPUs are busy, synchronization is done with [CAS](https://en.wikipedia.org/wiki/Compare-and-swap)) while Log4JLoggerBenchmark only consumes 15% CPU
124+
The Chronicle Logger consumes 100% CPU (all 40 vCPUs are busy, synchronization is done with [CAS](https://en.wikipedia.org/wiki/Compare-and-swap)) while Log4JLoggerBenchmark only consumes 15% CPU.
122125

123126
### Heap allocation
124127

0 commit comments

Comments
 (0)