Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: performance #658

Draft
wants to merge 12 commits into
base: v9-support
Choose a base branch
from
Draft

fix: performance #658

wants to merge 12 commits into from

Conversation

Siolto
Copy link
Collaborator

@Siolto Siolto commented Feb 11, 2025

First performance improvement of the v9 support.

current improvement for the basic.test.js from ~33 sec to ~13 sec. No further performance tests happened yet.

it was a late night session so the description will get updated. But not yet...

@Siolto
Copy link
Collaborator Author

Siolto commented Feb 12, 2025

I call it the Promisified callback hell 🔥 🔥

As far as I can tell the performance issues are a combination of our own waitForUI5, which is not fully promisified and still uses callbacks and the use of these callbacks in executeControlMethod and executeObjectMethod.

Current solution idea:

  • DON'T use any callbacks in waitForUI5 => for the time being, use the RecordReplay.waitForUI5
  • check if we can get rid of the callbacks in our own waitForUI5 function or even if we still need it for performance reasons.
  • I am not sure if this will solve all our performance issues but at least for me it makes it a lot faster

Ping: @vobu @marianfoo @hmanchev @monavari-lebrecht @nicoschoenteich

@Siolto Siolto mentioned this pull request Feb 12, 2025
@Siolto
Copy link
Collaborator Author

Siolto commented Feb 12, 2025

Performance update

I had to slow down BIDI due to fragile tests (Promise.all is deadly 💀). This comparison is not 100% accurate as I had to fix some tests on the way but we can see the improvements.

There are some BIDI related topics we have to discuss (marked with TODO in the PR) before merging this.

old BIDI performance:

image

new BIDI performance:

Bildschirmfoto 2025-02-12 um 20 52 01

old webdriver performance:

image

new webdriver performance:

image

@vobu
Copy link
Contributor

vobu commented Feb 13, 2025

you clearly are on a spree here and got further than any of us before. Kudos 🙇
Are the old..new comparisons relating to wdi5^2 vs wdi5^3 or is this wdi5^3-rc.0 vs the current codebase?

@Siolto
Copy link
Collaborator Author

Siolto commented Feb 24, 2025

you clearly are on a spree here and got further than any of us before. Kudos 🙇 Are the old..new comparisons relating to wdi5^2 vs wdi5^3 or is this wdi5^3-rc.0 vs the current codebase?

That was wdi5^3-rc.0 vs current codebase. For a fair comparison wdi5^2 vs current codebase you have to align the number of maximum instances since the default has increased with v3. If you want you can do this missing comparison 😉

My assumption is that we are still around 10-20% slower with the current codebase, but I am optimistic that we can reduce this even more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants