/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
All tests are done using Suns's 1.1.7U JDK on NT
-------------- Sometime in 1999 ---------------
Using OutputStream.
Results: - average 79 (simple)
Results: - average 164 (ttcc)

Logging to a null (nop) output stream.
Results: - average 56 (simple)
Results: - average 131 (ttcc)

Logging with stack info to a regular file.
Results: - average 1064 (simple)
Results: - average 1355 (ttcc)

Logging with stack info to a null (nop) output stream.
Results: - average  1002 (simple)
Results: - average  1272 (ttcc)
-------------- Mon Jan 3 17:30:21 2000 ---------------
Using Writer instead of OutputStream.
Results: 111 98 97 101 106 107 117 100 146 116 - average 109 (simple)
Results: 200 175 175 169 206 214 185 172 173 196 - average 186 (ttcc)

Logging to a null (nop) output stream.
Results: 23 23 25 28 24 23 23 23 23 23 - average 23 (simple)
Results: 67 66 64 65 75 65 66 64 65 64 - average 66 (ttcc)

Logging with stack info to a regular file.
Results: 981 986 1051 1021 1016 986 976 991 976 1021 - average 1000 (simple)
Results: 1136 1136 1126 1131 1136 1151 1131 1126 1136 1137 - average 1134

Logging with stack info to a null (nop) output stream.
Results: 791 786 821 781 776 791 776 776 781 781 - average 786 (simple)
Results: 911 901 901 896 906 943 906 966 901 906 - average 913 (ttcc)
-------------- Thu Jan 13 18:31:46 2000 ---------------
Using v0.7.3 FileAppender.doAppend
Results: 105 95 91 93 92 94 96 96 - average 95 (simple)
Results: 172 200 165 174 182 168 165 165 - average 173 (ttcc)

Logging to a null (nop) output stream.
Results: 22 22 26 22 22 21 24 22 - average 22 (simple)
Results: 65 64 66 64 64 64 65 65 - average 64 (ttcc)

Logging with stack info to a regular file.
Results: 831 921 836 841 836 831 831 841 - average 846 (simple)
Results: 1051 981 981 976 981 991 981 1026 - average 996 (ttcc)

Logging with stack info to a null (nop) output stream.
Results: 726 721 716 721 716 721 716 791 - average 728 (simple)
Results: 841 841 841 841 841 841 841 841 - average 841 (ttcc)
-------------- Fri Jan 14 15:12:11 2000 ---------------
Using v0.7.3 FileAppender.doAppend and the FilterWriter based architecture

Logging to a real file.
Results: 96 94 96 95 99 96 92 94 - average 95 (simple)
Results: 178 168 167 205 168 174 172 173 - average 175 (ttcc)

Logging to a null (nop) output stream.
Results: 28 22 21 22 25 21 22 24 - average 23 (simple)
Results: 67 73 65 64 64 64 64 64 - average 65 (ttcc)

Logging with stack info to a regular file.
Results: 961 831 846 831 841 831 836 866 - average 855 (simple)
Results: 981 976 1001 971 1242 981 1051 981 - average 1023 (ttcc)

Logging with stack info to a null (nop) output stream.
Results: 726 716 716 716 716 716 741 731 - average 722 (simple)
Results: 846 841 841 841 841 866 841 841 - average 844 (ttcc)

Note: only stack printing performance is affected.
-------------- Fri Jan 21 20:42:03 2000 ---------------
release 0.7.4
Logging to a real file.
Results: 90 94 92 90 92 91 88 92 - average 91 simple
Results: 172 161 162 166 165 165 179 164 - average 166 ttcc/RelTime
Results: 206 207 211 212 221 214 225 206 - average 212 ttcc/AbsTime
Results: 228 236 239 234 233 231 229 240 - average 233 ttcc/Date

Logging to a NOPWriter.
Results: 21 21 20 20 20 20 20 20 - average 20 simple
Results: 60 60 60 60 60 60 60 60 - average 60 ttcc/RelTime
Results: 96 96 96 96 96 96 96 96 - average 96 ttcc/AbsTime
Results: 111 111 112 111 112 108 111 112 - average 111 ttcc/Date

Logging with stack info to a regular file.
Results: 1091 1106 1092 1096 1096 1086 1106 1091 - average 1095 simple
Results: 1256 1242 1257 1251 1246 1267 1251 1256 - average 1253 ttcc/RelTime

Logging with stack info to a NOPWriter.
Results: 866 871 856 856 846 851 846 846 - average 854 simple
Results: 996 986 991 986 996 996 991 986 - average 991 ttcc/RelTime

-------------- Fri Jan 21 20:26:43 2000 ---------------
0.7.4 + static Date
Logging to a real file.
Results: 93 97 92 91 100 91 95 95 - average 94 simple
Results: 170 177 179 195 214 176 188 167 - average 183 ttcc/RelTime
Results: 215 214 218 212 211 215 217 224 - average 215 ttcc/AbsTime
Results: 296 274 234 235 230 237 232 231 - average 246 ttcc/Date

Logging to a NOPWriter.
Results: 21 21 20 20 22 20 20 20 - average 20 simple
Results: 60 60 60 60 60 60 60 60 - average 60 ttcc/RelTime
Results: 94 93 94 93 93 94 93 93 - average 93 ttcc/AbsTime
Results: 106 105 106 106 106 106 106 105 - average 105 ttcc/Date

Logging with stack info to a regular file.
Results: 1096 1091 1096 1087 1106 1091 1101 1091 - average 1094 simple
Results: 1211 1216 1212 1217 1211 1221 1216 1217 - average 1215 ttcc/RelTime

Logging with stack info to a NOPWriter.
Results: 866 866 861 851 846 856 851 856 - average 856 simple
Results: 956 981 966 966 956 961 961 961 - average 963 ttcc/RelTime

The static date version is faster by at least 3 microsecs.
-------------- Sat Jan 22 16:54:35 2000 ---------------
static Date in DateFormat and static StringBuffer in TTCCLayout
Logging to a real file.
Results: 92 90 92 93 93 91 89 97 - average 92 simple
Results: 159 161 167 160 159 161 164 159 - average 161 ttcc/RelTime
Results: 206 205 205 203 213 207 224 204 - average 208 ttcc/AbsTime
Results: 220 232 229 231 236 228 231 231 - average 229 ttcc/Date

Logging to a NOPWriter.
Results: 21 21 20 20 20 20 20 20 - average 20 simple
Results: 55 55 55 55 55 55 55 55 - average 55 ttcc/RelTime
Results: 88 88 87 89 88 92 90 87 - average 88 ttcc/AbsTime
Results: 101 102 101 101 102 102 106 106 - average 102 ttcc/Date

Logging with stack info to a regular file.
Results: 1101 1096 1111 1106 1112 1097 1101 1101 - average 1103 simple
Results: 1217 1212 1221 1271 1227 1217 1226 1216 - average 1225 ttcc/RelTime

Logging with stack info to a NOPWriter.
Results: 876 866 866 846 856 851 851 851 - average 857 simple
Results: 961 961 961 956 961 961 951 961 - average 959 ttcc/RelTime
-------------------------------------------------------
227 using sockets and byte buffers
-------------- Sat Jan 29 14:34:19 2000 ---------------
Using DateFormat extensions in TTCCLayout.

Logging to a real file.
Results: 177 170 173 171 185 188 176 176 - average 177 ttcc/RelTime
Results: 206 200 202 203 207 208 201 202 - average 203 ttcc/AbsTime
Results: 234 240 245 236 238 236 246 269 - average 243 ttcc/DateTime

Logging to a NOPWriter.
Results: 57 57 57 57 - average 57 ttcc/RelTime
Results: 86 84 85 85 - average 85 ttcc/AbsTime
Results: 113 112 112 112 - average 112 ttcc/DateTime

Logging with stack info to a regular file.
Results: 1111 1116 1116 1157 - average 1125 simple
Results: 1592 1592 1597 1597 - average 1594 ttcc/RelTime

Logging with stack info to a NOPWriter.
Results: 866 886 876 866 - average 873 simple
Results: 1312 1312 1302 1302 - average 1307 ttcc/RelTime

A noticable slowdown in RelTime printing, but sull faster than 0.7.4.
-------------- Thu Feb 3 21:04:35 2000 ---------------
Release 0.7.5 
Logging to a real file.
Results: 91 92 95 100 120 91 95 92 - average 97 simple
Results: 178 176 192 183 176 179 174 181 - average 179 ttcc/RelTime
Results: 211 201 203 203 206 220 210 216 - average 208 ttcc/AbsTime
Results: 238 237 245 233 239 237 239 241 - average 238 ttcc/DateTime

Logging to a NOPWriter.
Results: 21 21 21 20 - average 20 simple
Results: 58 58 58 58 - average 58 ttcc/RelTime
Results: 87 87 86 86 - average 86 ttcc/AbsTime
Results: 114 113 114 114 - average 113 ttcc/DateTime

Logging with stack info to a regular file.
Results: 1121 1121 1111 1126 - average 1119 simple
Results: 1622 1617 1597 1622 - average 1614 ttcc/RelTime

Logging with stack info to a NOPWriter.
Results: 886 881 876 866 - average 877 simple
Results: 1317 1317 1316 1317 - average 1316 ttcc/RelTime

-------------- Tue Mar 21 16:57:01 2000 ---------------
Release 0.8.2 code

Results:  30  30  31  31 - average 30 NullAppender/SimpleLayout
Results:  32  32  32  32 - average 32 NullAppender/PatternLayout "%p - %m\n"
Results:  31  31  31  31 - average 31 NullAppender/PatternLayout "%-5p - %m\n"
Results:  65  65  65  65 - average 65 NullAppender/TTCCLayout/RELATIVE
Results:  64  65  64  64 - average 64 NullAppender/PatternLayout "%r [%t] %-5p %c %x - %m\n"
Results:  64  64  64  64 - average 64 NullAppender/PatternLayout "%r [%t] %-5p %.10c %x - %m\n"
Results:  64  65  64  64 - average 64 NullAppender/PatternLayout "%r [%t] %-5p %.20c %x - %m\n"
Results:  58  58  60  58 - average 58 NullAppender/PatternLayout "%r [%t] %-5p %c - %m\n"
Results: 122 124 121 122 - average 122 NullAppender/TTCCLayout/ISO8601
Results: 152 152 152 152 - average 152 NullAppender/PatternLayout "%d{ISO8601} [%t] %-5p %c %x - %m\n"
Results: 405 405 404 405 - average 404 NullAppender/PatternLayout "%d{yyyy-MM-dd HH:mm:ss,SSS} [%t] %-5p %c %x - %m\n"
Results: 111 112 113 110 110 111 114 120 - average 112 FileAppender/SimpleLayout
Results: 127 124 125 129 140 121 121 123 - average 126 FileAppender/PatternLayout "%p - %m\n"
Results: 196 195 186 183 186 190 182 189 - average 188 FileAppender/TTCC/RELATIVE
Results: 188 184 186 195 195 214 193 191 - average 193 FileAppender/PatternLayout "%r [%t] %-5p %c %x - %m\n"
Results: 257 265 300 252                 - average 268 FileAppender/TTCCLayout/ISO8601
Results: 289 332 320 338 308 290 288 290 - average 306 FileAppender/PatternLayout "%d{ISO8601} [%t] %-5p %c %x - %m\n"
Results: 574 577 580 572 573 577 576 589 - average 577 FileAppender/PatternLayout "%d{yyyy-MM-dd HH:mm:ss,SSS} [%t]
 %-5p %c %x - %m\n"

Notice the good performance of PatternLayout compared to dedicated
SimpleLayout and TTCCLayout except when SimpleDateFormat is used.

