Hi, Alexander

I tried the ToplevelFactory.jar demo with security warning: on a single window resize the insets are queried ~10-20 times. I've tested the native method call time with a microbenchmark: it shows < 0.1ms/call. Thus we got ~1-2ms overhead for a single window resize. Visually there is no performance degradation.

Thanks!
Anton.

On 13.02.2015 16:03, Alexander Zvegintsev wrote:
Hello Anton,

getScreenInsets() is called from repositionSecurityWarning() also (which is called on every LWWindowPeer.notifyReshape()). It probably may affect performance in case when security warning is shown while resizing a window.
Could you please  check this case?
If this leads to impaired performance we may consider to use NSApplicationDidChangeScreenParametersNotification [0]
to update cached values.

[0] https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSApplication_Class/#//apple_ref/c/data/NSApplicationDidChangeScreenParametersNotification

Thanks,

Alexander.

On 02/13/2015 03:06 PM, Anton Nashatyrev wrote:
Hello,

    could you please review the following fix:

fix: http://cr.openjdk.java.net/~anashaty/8072069/9/webrev.00/ <http://cr.openjdk.java.net/%7Eanashaty/8072069/9/webrev.00/>
bug: https://bugs.openjdk.java.net/browse/JDK-8072069

Problem: Toolkit.getScreenInsets() returns old value after Dock moved/resized on Mac

    Fix: remove the value caching and always ask native for insets.
This shouldn't cause any performance drawbacks since the getScreenInsets() is rarely called (mostly on window init and on popup positioning).

Thanks!
Anton.


Reply via email to