[
https://issues.apache.org/jira/browse/LOG4NET-151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13101267#comment-13101267
]
Roy Chastain commented on LOG4NET-151:
--------------------------------------
If you reverse the two lines in teh if block, then the result is no worse with
2 threads than with one. However, in either case the ticks needs the volatile
attribute.
> 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