java.awt event processing performance degradation on JRE7 - linux

Anthony Petrov anthony.petrov at oracle.com
Tue Apr 17 03:28:14 PDT 2012


Here's the relevant thread:

http://mail.openjdk.java.net/pipermail/awt-dev/2011-October/001952.html

It was concerning building strings that are supposed to be logged while 
the logging itself wasn't actually enabled.

The problem reported by Nicolas seems to be about logger initialization, 
so I doubt these two issues are related.

--
best regards,
Anthony

On 4/17/2012 6:03 AM, David Holmes wrote:
> This sounds like it may be related to an issue that was reported a while 
> ago. I don't recall the exact details but there was some massive array 
> being allocated if I recall correctly. The fix was to add a guard to the 
> logging calls in the AWT code. But in this case if logging is being used 
> then you will hit this overhead.
> 
> Sorry I don't recall enough details to find an exact reference. Skimming 
> a number of mailing list archives hasn't turned it up either.
> 
> David
> 
> On 16/04/2012 11:18 PM, Daniel D. Daugherty wrote:
>> java.util.logging is currently handled by the Serviceability Team.
>> Adding that alias to this e-mail thread...
>>
>> Dan
>>
>>
>> On 4/16/12 12:17 AM, Nicolas Carranza wrote:
>>> Moving the mouse pointer over a java.awt.Window using JRE7 consumes
>>> aprox. twice the CPU time as with JRE6 when logging is used (when a call
>>> to java.util.logging.getLogger(String)---even without using the returned
>>> Logger--- has been done). Keyboard key event processing suffers the same
>>> performance penalty. For steps to reproduce this problem please look at:
>>> http://www.java.net/forum/topic/performance/general-performance-discussion/jre7s-javaawt-performance-degradation-caused-javautillogging-linux 
>>>
>>>
>>> .
>>>
>>> The performance degradation seems to be "enabled" by the call of
>>> sun.util.logging.PlatformLogger.redirectPlatformLoggers() done inside
>>> java.util.LogManager.readPrimorialConfiguration() on JRE7. Call chain:
>>> Logger.getLogger()->LogManager.getLogManager()->
>>> LogManager.readPrimordialConfiguration()->sun.util.logging.PlatformLogger.redirectPlatformLoggers(). 
>>>
>>>
>>>
>>> This call is not made on JRE6. If this problem is not easy to solve then
>>> I guess is better to remove this call from JRE7's
>>> readPrimordialConfiguration as it does more harm than good.
>>>
>>> Please let me know if there is a better place to report this problem. A
>>> couple of weeks ago I "opened" a bug report on bugs.sun.com but I
>>> received no response at all.
>>>
>>> Cheers,
>>> Nicolas



More information about the jdk7u-dev mailing list