tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexander Shirkov <sgdr...@gmail.com>
Subject Re: Bug 49165 - Allow %{TIME_FORMAT}t As Configuration for AccessLogValve
Date Sat, 17 Jul 2010 16:51:10 GMT
I've submitted patch and related unit tests.

Some questions about the process:
- should I assign bug to myself?
- should I change bug status from NEW to RESOLVED after submitting the
patch?

Thanks,
Alexander

On 17.07.10 6:28, "Mark Thomas" <markt@apache.org> wrote:

> On 15/07/2010 05:11, Alexander Shirkov wrote:
>> Hello,
>> 
>> I¹m working on Bug 49164 (
>> https://issues.apache.org/bugzilla/show_bug.cgi?id=49165)
>> 
>> Have a question:
>> Any hidden reasons, why following construction was used for creating %t
>> pattern?:
> 
> It stems from this:
> http://svn.apache.org/viewvc?view=revision&revision=285381
> 
> It appears to be performance related but from the figures you present
> below, it may now be unnecessary.
> 
> Mark
> 
>> 
>> private SimpleDateFormat dayFormatter = new SimpleDateFormat("dd");
>> private SimpleDateFormat monthFormatter = new SimpleDateFormat("MM");
>> private SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy");
>> private SimpleDateFormat timeFormatter = new SimpleDateFormat("HH:mm:ss");
>> ...
>> StringBuilder current = new StringBuilder(32);
>> current.append('[');
>> current.append(struct.dayFormatter.format(date));
>> current.append('/');
>> current.append(lookup(struct.monthFormatter.format(date)));
>> current.append('/');
>> current.append(struct.yearFormatter.format(date));
>> current.append(':');
>> current.append(struct.timeFormatter.format(date));
>> current.append(' ');
>> current.append(getTimeZone(date));
>> current.append(']');
>> struct.currentDateString = current.toString();
>> 
>> Instead of this one:
>> 
>> private SimpleDateFormat timeFormatter = new
>> SimpleDateFormat("[dd/MMM/yyyy:HH:mm:ss]");
>> ...
>> struct.currentDateString = struct.timeFormatter.format(date);
>> 
>> I¹ve added one more test with this structure to
>> org.apache.catalina.valves.Benchmarks and looks like the last solution the
>> shortest and fastest option. Plus we can pass any pattern from configuration
>> (#49165 enhancement intention):
>> 
>> TimeDateElementBenchmarkTest_Sync: 5 threads and 10000000 iterations using
>> Syncs took 3392ms
>> TimeDateElementBenchmarkTest_Local: 5 threads and 10000000 iterations using
>> ThreadLocals took 2551ms
>> TimeDateElementBenchmarkTest_LocalStruct: 5 threads and 10000000 iterations
>> using single ThreadLocal took 2237ms
>> TimeDateElementBenchmarkTest_LocalStruct_SBuilder: 5 threads and 10000000
>> iterations using single ThreadLocal, with StringBuilder took 2196ms
>> TimeDateElementBenchmarkTest_LocalStruct_SimpleDateFormat: 5 threads and
>> 10000000 iterations using single ThreadLocal SimpleDateFormat took 2152ms
>>  
>> 
>> P. S. My thanks to Mark Thomas for buglist to start.
>> 
>> 
>> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message