RFR: 8313697: [XWayland][Screencast] consequent getPixelColor calls are slow [v3]

Sergey Bylokhov serb at openjdk.org
Wed Aug 16 05:31:08 UTC 2023


On Mon, 14 Aug 2023 14:12:59 GMT, Alexander Zvegintsev <azvegint at openjdk.org> wrote:

>> Right now, each call to getPixelColor/createScreenCapture opens and closes a ScreenCast session. 
>> When there are many such calls in a row, it becomes a rather time-consuming operation.
>> 
>> For example,
>> 
>> 
>> for (int i = 0; i < 50; i++) {
>>     for (int j = 0; j < 50; j++) {
>>         robot.getPixelColor(i, j);
>>     }
>> } 
>> 
>> `50x50 took 375219ms`
>> 
>> This fix offers optimization by keeping the session open and closing it only 2 seconds after the last activity.
>> 
>> `50x50 took 28113ms` which is ~ 13 times faster.
>> 
>> Testing looks good.
>
> Alexander Zvegintsev has updated the pull request incrementally with one additional commit since the last revision:
> 
>   fix app exit issue

I think it is good as is, an additional option could be added if this functionality will work well and no other solution will not be found.

But we also can try to close the session if the robot object is collected by GC.

-------------

Marked as reviewed by serb (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/15250#pullrequestreview-1579825787


More information about the client-libs-dev mailing list