java.awt event processing performance degradation on JRE7 - linux

David Holmes david.holmes at oracle.com
Tue Apr 17 05:20:11 PDT 2012


On 17/04/2012 8:28 PM, Anthony Petrov wrote:
> 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.

Thanks Anthony!

David

> --
> 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