[ 
https://issues.apache.org/jira/browse/LOG4NET-151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13101193#comment-13101193
 ] 

Stefan Bodewig commented on LOG4NET-151:
----------------------------------------

To avoid that a second thread reads an old value of cachedDateTime while the 
first one is between the two lines inside the if block this would require 
locking, which probably defeats the performance gain of the cache.

> Cache DateTime.Now values when creating LoggingEvent when 
> Environment.TickCount has not changed
> -----------------------------------------------------------------------------------------------
>
>                 Key: LOG4NET-151
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-151
>             Project: Log4net
>          Issue Type: Improvement
>    Affects Versions: 1.2.10
>            Reporter: Ron Grabowski
>            Assignee: Ron Grabowski
>            Priority: Minor
>             Fix For: 1.2.11
>
>
> When creating a lot of logging events in tight loop, DateTime.Now is called 
> for each new LoggingEvent even if several LoggingEvents are created within 
> the same millisecond. We can reuse the same DateTime object because DateTime 
> objects only track time down to the millisecond:
> // inspired by nlog
> int ticks = Environment.TickCount;
> if (ticks != cachedTicks)
> {
>  cachedTicks = ticks;
>  cachedDateTime = DateTime.Now;
> }
> return cachedDateTime;

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to