Repository: logging-log4j2 Updated Branches: refs/heads/master aba5c6bbb -> 0e9e33156
Rename benchmarks to preserve order. - Also added another benchmark for using Thread.getStackTrace() to compare against Throwable.getStackTrace(). Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/54f5bf4e Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/54f5bf4e Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/54f5bf4e Branch: refs/heads/master Commit: 54f5bf4e723b61000a2de1158f34e67b9c173a16 Parents: aba5c6b Author: Matt Sicker <mattsic...@apache.org> Authored: Fri Sep 5 12:28:19 2014 -0500 Committer: Matt Sicker <mattsic...@apache.org> Committed: Fri Sep 5 12:28:19 2014 -0500 ---------------------------------------------------------------------- .../log4j/perf/jmh/ReflectionBenchmark.java | 28 +++++++++++++------- 1 file changed, 19 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/54f5bf4e/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java ---------------------------------------------------------------------- diff --git a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java index 3721787..2d98f6b 100644 --- a/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java +++ b/log4j-perf/src/main/java/org/apache/logging/log4j/perf/jmh/ReflectionBenchmark.java @@ -57,46 +57,56 @@ public class ReflectionBenchmark { } @GenerateMicroBenchmark - public void testBaseline() { + public void baseline() { } @GenerateMicroBenchmark - public String getCallerClassNameFromStackTrace() { + public String test01_getCallerClassNameFromStackTrace() { return new Throwable().getStackTrace()[3].getClassName(); } @GenerateMicroBenchmark - public String getCallerClassNameReflectively() { + public String test02_getCallerClassNameFromThreadStackTrace() { + return Thread.currentThread().getStackTrace()[3].getClassName(); + } + + @GenerateMicroBenchmark + public String test03_getCallerClassNameReflectively() { return ReflectiveCallerClassUtility.getCaller(3).getName(); } @GenerateMicroBenchmark - public String getCallerClassNameSunReflection() { + public String test04_getCallerClassNameSunReflection() { return Reflection.getCallerClass(3).getName(); } @GenerateMicroBenchmark - public Class<?> getStackTraceClassForClassName() throws ClassNotFoundException { + public Class<?> test05_getStackTraceClassForClassName() throws ClassNotFoundException { return Class.forName(new Throwable().getStackTrace()[3].getClassName()); } @GenerateMicroBenchmark - public Class<?> getReflectiveCallerClassUtility() { + public Class<?> test06_getThreadStackTraceClassForClassName() throws ClassNotFoundException { + return Class.forName(Thread.currentThread().getStackTrace()[3].getClassName()); + } + + @GenerateMicroBenchmark + public Class<?> test07_getReflectiveCallerClassUtility() { return ReflectiveCallerClassUtility.getCaller(3); } @GenerateMicroBenchmark - public Class<?> getDirectSunReflection() { + public Class<?> test08_getDirectSunReflection() { return Reflection.getCallerClass(3); } @GenerateMicroBenchmark - public Message getMessageUsingNew(final RandomInteger rng) { + public Message test09_getMessageUsingNew(final RandomInteger rng) { return new StringFormattedMessage("Hello %i", rng.random); } @GenerateMicroBenchmark - public Message getMessageUsingReflection(final RandomInteger rng) + public Message test10_getMessageUsingReflection(final RandomInteger rng) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException { final Constructor<? extends Message> constructor = StringFormattedMessage.class.getConstructor(String.class, Object[].class);