svn commit: r2291 - logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/issue/lbclassic36

Author: ceki Date: Sun Jun 14 21:48:08 2009 New Revision: 2291 Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/issue/lbclassic36/TestDateFormat.java Log: Guarded versions of the tests so as to resemble the code found the logback. Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/issue/lbclassic36/TestDateFormat.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/issue/lbclassic36/TestDateFormat.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/issue/lbclassic36/TestDateFormat.java Sun Jun 14 21:48:08 2009 @@ -10,18 +10,21 @@ public static final String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS"; static final long NANOS_IN_ONE_SEC = 1000 * 1000 * 1000L; - static long RUN_LENGTH = 1000*1000; + static long RUN_LENGTH = 1000 * 1000; public static void main(String[] args) { for (int i = 0; i < 5; i++) { doRawJoda(); - doRawSimpleDateFormat(); - doSyncronizedSimpleDateFormat(); + doRawSDF(); + doGuardedJoda(); + doGuardedSDF(); } - print("Raw Joda: ", doRawJoda()); - print("Sync SimpleDateFormat: ", doSyncronizedSimpleDateFormat()); - print("Raw SimpleDateFormat: ", doRawSimpleDateFormat()); + print("Raw Joda: ", doRawJoda()); + print("Raw SDF: ", doRawSDF()); + print("Guarded Joda: ", doGuardedJoda()); + print("Guarded SDF: ", doGuardedSDF()); + } static void print(String msg, double avg) { @@ -38,7 +41,23 @@ return (System.nanoTime() - start) * 1.0d / RUN_LENGTH; } - static double doRawSimpleDateFormat() { + static double doGuardedJoda() { + DateTimeFormatter jodaFormat = DateTimeFormat.forPattern(ISO8601_PATTERN); + long start = System.nanoTime(); + long cache = 0; + for (int i = 0; i < RUN_LENGTH; ++i) { + synchronized (jodaFormat) { + long now = System.currentTimeMillis(); + if (cache != now) { + cache = now; + jodaFormat.print(now); + } + } + } + return (System.nanoTime() - start) * 1.0d / RUN_LENGTH; + } + + static double doRawSDF() { SimpleDateFormat simpleFormat = new SimpleDateFormat(ISO8601_PATTERN); long timeInMillis = new Date().getTime(); long start = System.nanoTime(); @@ -48,16 +67,19 @@ return (System.nanoTime() - start) * 1.0d / RUN_LENGTH; } - static double doSyncronizedSimpleDateFormat() { + static double doGuardedSDF() { SimpleDateFormat simpleFormat = new SimpleDateFormat(ISO8601_PATTERN); - long timeInMillis = new Date().getTime(); long start = System.nanoTime(); + long cache = 0; for (int i = 0; i < RUN_LENGTH; ++i) { synchronized (simpleFormat) { - simpleFormat.format(timeInMillis); + long now = System.currentTimeMillis(); + if (cache != now) { + cache = now; + simpleFormat.format(now); + } } } return (System.nanoTime() - start) * 1.0d / RUN_LENGTH; } - }
participants (1)
-
noreply.ceki@qos.ch