[OpenJDK 2D-Dev] [14] RFR JDK-8235147: Release HDC from passiveDCList sooner
Alexey Ivanov
alexey.ivanov at oracle.com
Thu Feb 6 21:39:43 UTC 2020
Hello once again,
After trying a few things suggested by Sergey, I found serious issues in
the new approaches although the code looked a bit cleaner. Resolving
those issues requires substantial changes to the way we handle the
active and passive DC lists.
Thus, it's safer to postpone further refactoring to a later time.
So we're back to the original proposal.
I'm quoting it for your convenience below:
JBS: https://bugs.openjdk.java.net/browse/JDK-8235147
Webrev: http://cr.openjdk.java.net/~aivanov/8235147/webrev.00/
When a DC becomes unused, it is moved from activeDCList to passiveDCList
to be released later. It will stay in the passiveDCList until a new DC
is requested for the same window or the window is destroyed.
The DCs in passiveDCList will never be used again, so we can release
them as soon as another request for a DC comes in.
The test case, ManyFramesTest.java, attached to the bug creates and
displays 10 frames. Then it hides the 9 frames. At this point,
passiveDCList contains 9 entries. These DCs will not be released until
the corresponding frame is shown and painted again or the frame is
destroyed.
The fix releases all DCs currently in passiveDCList when another DC is
requested.
With the fix, when running ManyFramesTest.java test case, the number of
entries in passiveDCList does not grow, the list contains at most 1 entry.
On 12/12/2019 20:46, Alexey Ivanov wrote:
> Hi Sergey,
>
> <SNIP>
>
>
> It does not work good. I found serious issues in either approach I've
> tried so far.
>
> Thus, we're down to the original proposal:
>
> JBS: https://bugs.openjdk.java.net/browse/JDK-8235147
> Webrev: http://cr.openjdk.java.net/~aivanov/8235147/webrev.00/
>
--
Regards,
Alexey
More information about the 2d-dev
mailing list