[prev in list] [next in list] [prev in thread] [next in thread] 

List:       log4net-dev
Subject:    [jira] Commented: (LOG4NET-250) Drastically decrease amount of time
From:       "Walden Leverich (JIRA)" <jira () apache ! org>
Date:       2010-04-15 19:52:48
Message-ID: 28167860.149691271361168326.JavaMail.jira () thor
[Download RAW message or body]


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

Walden Leverich commented on LOG4NET-250:
-----------------------------------------

The semantics of WindowsIdentity.GetCurrent() are different from that of \
Environment.UserName. I understand why you'd want the faster one, but GetCurrent() \
respects impersonation while Environment.UserName doesn't, and that's an important \
distinction. Perhaps a new LoggingEvent.ProcessUserName would make sense?

> Drastically decrease amount of time needed for LoggingEvent.UserName
> --------------------------------------------------------------------
> 
> Key: LOG4NET-250
> URL: https://issues.apache.org/jira/browse/LOG4NET-250
> Project: Log4net
> Issue Type: Improvement
> Components: Core
> Affects Versions: 1.2.10
> Reporter: Hao Zhang
> 
> Currently, each LoggingEvent retrieves the logged on user using 
> WindowsIdentity.GetCurrent() which takes a long time
> One can obtain drastic improvements by switching to Environment.UserDomain and \
> Environment.UserName Here are some numbers on my box running Windows XP SP3, .NET \
> 2.0, debug mode. Using Environment:
> for (int i = 0; i < 50000; i++)
> {
> var x = (Environment.UserDomainName + "\\" + Environment.UserName);
> }
> takes 4294 milliseconds to run (4.294) using Stopwatch
> Using WindowsIdentity:
> for (int i = 0; i < 50000; i++)
> {
> var x = (WindowsIdentity.GetCurrent().Name);
> }
> start.Stop();
> takes 20191 (20 seconds) milliseconds to run,
> Thus, it takes almost 5x longer to use WindowsIdentity.
> This isn't much of an issue if you're not logging extremely high quantities or do \
> not log the user name. However, I'm currently using XmlLayoutSchemaLog4j which \
> forces the retrieval of said information for the log4net:UserName property.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: \
                https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic