Skip to content

Commit 4b9e1e3

Browse files
additional metrics
1 parent eda2569 commit 4b9e1e3

File tree

1 file changed

+68
-11
lines changed

1 file changed

+68
-11
lines changed

README.md

Lines changed: 68 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,76 @@ execute that code to generate comparable results.
3434

3535
## What are the results?
3636

37-
I still need to run the code in a long running benchmark. For a short running benchmark the values look like that (
38-
sorted from fastest to slowest):
37+
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 (
38+
sorted from fastest to slowest).
39+
40+
### Execution on M1 Max MacBook with 64 GB RAM
41+
42+
The benchmark has been executed on 4 threads in parallel:
3943

4044
| Logger | Logging Appender | Operations per second |
4145
|-------------------|------------------------|----------------------:|
42-
| Log4J2 | FILE_ASYNC | 26443,286 |
43-
| Chronicle Logger | FILE_ASYNC | 23435,042 |
44-
| Log4J2 | FILE | 13262,229 |
45-
| Java Util Logging | FILE | 5793,153 |
46-
| Log4J2 | FILE_ASYNC_AND_CONSOLE | 3853,433 |
47-
| Log4J2 | FILE_AND_CONSOLE | 3686,111 |
48-
| Log4J2 | CONSOLE | 3720,956 |
49-
| Java Util Logging | CONSOLE | 3430,061 |
50-
| Java Util Logging | FILE_AND_CONSOLE | 2712,309 |
46+
| Log4J2 | FILE_ASYNC | 26443 |
47+
| Chronicle Logger | FILE_ASYNC | 23435 |
48+
| Log4J2 | FILE | 13262 |
49+
| Java Util Logging | FILE | 5793 |
50+
| Log4J2 | FILE_ASYNC_AND_CONSOLE | 3853 |
51+
| Log4J2 | FILE_AND_CONSOLE | 3686 |
52+
| Log4J2 | CONSOLE | 3720 |
53+
| Java Util Logging | CONSOLE | 3430 |
54+
| Java Util Logging | FILE_AND_CONSOLE | 2712 |
55+
56+
### Execution on Linux box with 40 vCPUs and 250 GB RAM
57+
58+
The benchmark has been executed on 4 threads in parallel:
59+
60+
| Logger | Logging Appender | Operations per second |
61+
|-------------------|------------------------|----------------------:|
62+
| Log4J2 | FILE_ASYNC | 16379 |
63+
| Log4J2 | FILE | 12527 |
64+
| Chronicle Logger | FILE_ASYNC | 9711 |
65+
| SLF4J Simple | FILE | 4195 |
66+
| Log4J2 | CONSOLE | 3383 |
67+
| Log4J2 | FILE_AND_CONSOLE | 3273 |
68+
| Log4J2 | FILE_ASYNC_AND_CONSOLE | 3199 |
69+
| Java Util Logging | FILE | 2834 |
70+
| Java Util Logging | FILE_AND_CONSOLE | 1987 |
71+
| Java Util Logging | CONSOLE | 1722 |
72+
73+
The benchmark has been executed on 40 threads in parallel:
74+
75+
| Logger | Logging Appender | Operations per second |
76+
|-------------------|------------------------|----------------------:|
77+
| Log4J2 | FILE | 8816 |
78+
| Log4J2 | FILE_ASYNC | 8141 |
79+
| SLF4J Simple | FILE | 4735 |
80+
| Chronicle Logger | FILE_ASYNC | 4226 |
81+
| Log4J2 | CONSOLE | 3656 |
82+
| Log4J2 | FILE_ASYNC_AND_CONSOLE | 3627 |
83+
| Log4J2 | FILE_AND_CONSOLE | 3412 |
84+
| Java Util Logging | FILE | 2771 |
85+
| Java Util Logging | CONSOLE | 1468 |
86+
| Java Util Logging | FILE_AND_CONSOLE | 1137 |
87+
88+
The benchmark has been executed on 240 threads in parallel:
89+
90+
| Logger | Logging Appender | Operations per second |
91+
|-------------------|------------------------|----------------------:|
92+
| Log4J2 | FILE | 8583 |
93+
| Log4J2 | FILE_ASYNC | 7481 |
94+
| SLF4J Simple | FILE | 4542 |
95+
| Log4J2 | CONSOLE | 3543 |
96+
| Log4J2 | FILE_ASYNC_AND_CONSOLE | 3448 |
97+
| Log4J2 | FILE_AND_CONSOLE | 3401 |
98+
| Java Util Logging | FILE | 2248 |
99+
| Java Util Logging | CONSOLE | 1496 |
100+
| Java Util Logging | FILE_AND_CONSOLE | 1131 |
101+
| Chronicle Logger | FILE_ASYNC | 432 |
102+
103+
### CPU usage
104+
105+
The Chronicle Logger consumes 100% CPU (all 40 vCPUs are busy, synchronization is done with CAS) while Log4JLoggerBenchmark only consumes 15% CPU
51106

107+
### Heap allocation
52108

109+
The Chronicle Logger allocates around 0.65 GB of heap when the benchmark is executed. Log4J needs much more memory and allocated over 3 GB in the benchmark.

0 commit comments

Comments
 (0)