Repository: logging-log4j2 Updated Branches: refs/heads/master 9bbf6ad1c -> 7d3aac4b9
update and expand benchmark Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/7d3aac4b Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/7d3aac4b Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/7d3aac4b Branch: refs/heads/master Commit: 7d3aac4b99d0956a25698c744d1c42f03d91257a Parents: 9bbf6ad Author: rpopma <[email protected]> Authored: Sun Jan 24 22:36:05 2016 +0900 Committer: rpopma <[email protected]> Committed: Sun Jan 24 22:36:05 2016 +0900 ---------------------------------------------------------------------- .../log4j/perf/jmh/PatternLayoutBenchmark.java | 174 ++++++++++++++++--- 1 file changed, 146 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/7d3aac4b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/PatternLayoutBenchmark.java ---------------------------------------------------------------------- diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/PatternLayoutBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/PatternLayoutBenchmark.java index 311e5f5..8d39732 100644 --- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/PatternLayoutBenchmark.java +++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/PatternLayoutBenchmark.java @@ -43,7 +43,8 @@ import org.openjdk.jmh.annotations.State; // // single thread: // java -jar log4j-perf/target/benchmarks.jar ".*PatternLayoutBench.*" -f 1 -wi 5 -i 10 -// java -jar log4j-perf/target/benchmarks.jar ".*PatternLayoutBench.*" -f 1 -wi 5 -i 10 -bm sample -tu ns +// java -Dfile.encoding=UTF8 -jar log4j-perf/target/benchmarks.jar ".*PatternLayoutBench.*" -f 1 -wi 5 -i 10 +// java -Dfile.encoding=ISO-8859-1 -jar log4j-perf/target/benchmarks.jar ".*PatternLayoutBench.*" -f 1 -wi 5 -i 10 // // Usage help: // java -jar log4j-perf/target/benchmarks.jar -help @@ -64,6 +65,10 @@ public class PatternLayoutBenchmark { private final PatternLayout PATTERN_M_C = PatternLayout.createLayout("%c %m%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); private final PatternLayout PATTERN_M_C_D = PatternLayout.createLayout("%d %c %m%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); private final PatternLayout PATTERN_M_D = PatternLayout.createLayout("%d %m%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); + private final PatternLayout PATTERN_C = PatternLayout.createLayout("%c%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); + private final PatternLayout PATTERN_D = PatternLayout.createLayout("%d%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); + private final PatternLayout PATTERN_M_D_NOSPACE = PatternLayout.createLayout("%d%m%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); + private final PatternLayout PATTERN_M_C_NOSPACE = PatternLayout.createLayout("%c%m%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); private final PatternLayout PATTERN_M_EX = PatternLayout.createLayout("%m %ex%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); private final PatternLayout PATTERN_M_D_EX = PatternLayout.createLayout("%d %m%ex%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); private final PatternLayout PATTERN_M_C_D_EX = PatternLayout.createLayout("%d %c %m%ex%n", null, null, null, CHARSET_DEFAULT, false, true, null, null); @@ -96,66 +101,179 @@ public class PatternLayoutBenchmark { } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputStringGetBytes() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] stringGetBytes() { return STR.getBytes(); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternM() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayM() { return PATTERN_M.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternSpace() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArraySpace() { return PATTERN_SPACE.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternMC() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMC() { return PATTERN_M_C.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternMCD() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMCD() { return PATTERN_M_C_D.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternMD() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMD() { return PATTERN_M_D.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternMDEx() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMDEx() { return PATTERN_M_D_EX.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternMEx() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMEx() { return PATTERN_M_EX.toByteArray(EVENT); } @Benchmark - @BenchmarkMode(Mode.Throughput) - @OutputTimeUnit(TimeUnit.SECONDS) - public byte[] throughputPatternMCDEx() { + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMCDEx() { return PATTERN_M_C_D_EX.toByteArray(EVENT); } + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayC() { + return PATTERN_C.toByteArray(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayD() { + return PATTERN_D.toByteArray(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMDNoSpace() { + return PATTERN_M_D_NOSPACE.toByteArray(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public byte[] byteArrayMCNoSpace() { + return PATTERN_M_C_NOSPACE.toByteArray(EVENT); + } +//--- + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableM() { + return PATTERN_M.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableSpace() { + return PATTERN_SPACE.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMC() { + return PATTERN_M_C.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMCD() { + return PATTERN_M_C_D.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMD() { + return PATTERN_M_D.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMDEx() { + return PATTERN_M_D_EX.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMEx() { + return PATTERN_M_EX.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMCDEx() { + return PATTERN_M_C_D_EX.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableC() { + return PATTERN_C.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableD() { + return PATTERN_D.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMDNoSpace() { + return PATTERN_M_D_NOSPACE.toSerializable(EVENT); + } + + @Benchmark + @BenchmarkMode(Mode.SampleTime) + @OutputTimeUnit(TimeUnit.NANOSECONDS) + public String serializableMCNoSpace() { + return PATTERN_M_C_NOSPACE.toSerializable(EVENT); + } + }
