[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