<Swing Dev> [9] Review request for 8169922 SwingMark/TextArea: 2-7% regression on Linux, Mac, Windows in 9-b143
Alexandr Scherbatiy
alexandr.scherbatiy at oracle.com
Tue Dec 20 20:52:47 UTC 2016
On 12/16/2016 2:36 AM, Phil Race wrote:
> I just noticed that you spell the new methods with a single d :eg :
> getFPMethodOverriden
>
> Like the variables that were there before it should be
> getFPMethodOverridden
> and checkFPMethodOverridden
Here is the updated fix where the typo is updated:
http://cr.openjdk.java.net/~alexsch/8169922/webrev.02
>
> Also, although rather unlikely to be a problem in practice, since there
> is nothing in the swing rules to prevent constructing a Swing component on
> a random thread, before adding it to the hierarchy, and the shared Map
> is populated
> at construction time, it seems like we need a ConcurrentHashMap ..
It seems that it could be possible that a constructor can schedule to
run some actions calling SwingUtilities.invokeLater().
In this case both threads (the thread where a Swing component is
constructor and EDT) can simultaneously start the object fields updating.
There is still no guarantee that all works as expected if a Swing
component is constructed in non-EDT.
Thanks,
Alexandr.
>
> -phil.
>
> On 12/15/2016 09:06 AM, Alexandr Scherbatiy wrote:
>>
>> Hello,
>>
>> Could you review the updated fix:
>> http://cr.openjdk.java.net/~alexsch/8169922/webrev.01
>>
>> - the HashMap is stored in SoftRefence
>> - the typo in getMethodArguments() is fixed
>> - classes FPMethodItem and FPMethodArgs are defined in the PlainView
>> class.
>>
>> Thanks,
>> Alexandr.
>>
>> On 12/14/2016 8:30 PM, Sergey Bylokhov wrote:
>>> Hi, Alexander.
>>> Should not the storage be based on soft references? In the current
>>> solution we will store the references to the checked classes forever
>>> in the static map.
>>>
>>>> 13 дек. 2016 г., в 18:41, Alexandr Scherbatiy
>>>> <alexandr.scherbatiy at oracle.com> написал(а):
>>>>
>>>>
>>>> Hello,
>>>>
>>>> Could you review the fix:
>>>> bug: https://bugs.openjdk.java.net/browse/JDK-8169922
>>>> webrev: http://cr.openjdk.java.net/~alexsch/8169922/webrev.00
>>>>
>>>> The fix JDK-8156217 checks presence of the overridden methods
>>>> with floating point arguments.
>>>> The proposed fix caches results of found overridden methods with
>>>> floating point arguments.
>>>>
>>>> I run the SwingSet2 with the custom test which intensively
>>>> creates JTextField, JPasswordField, JTextArea, and JEditorPane.
>>>>
>>>> The results of the test running with the following JDK are:
>>>> 1. Methods with int arguments are always called without the
>>>> methods overridden check: 45822 // before the fix JDK-8156217
>>>> 2. Methods with floating point arguments are always called
>>>> without the methods overridden check: 46175
>>>> performance decreasing: 100 * (46175 - 45822) / 45822 = 0.77%
>>>> 3. Methods with floating point arguments are always called with
>>>> the methods overridden check: 48836 // fix JDK-8156217
>>>> performance decreasing: 100 * (48836 - 45822) / 45822 = 6.58%
>>>> 4. Methods with floating point arguments are always called and
>>>> the methods overridden checks are cached: 46592 // current fix
>>>> performance decreasing: 100 * (46592 - 45822) / 45822 = 1.68%
>>>>
>>>> Thanks,
>>>> Alexandr.
>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20161220/8d174f52/attachment.html>
More information about the swing-dev
mailing list