-
Notifications
You must be signed in to change notification settings - Fork 8
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
Evict unavailable elements and improve element compare performance #41
Conversation
Add failing test based on reproduce in #35.
b93c80b
to
7e8792e
Compare
I'm testing this with the hacky repro at https://github.com/grokys/FlaUI.WebDriver/tree/tests/slowdown-demo and it doesn't seem to help much. I'm seeing the |
Looks like the |
7e8792e
to
ab10ea2
Compare
Evict unavailable elements and windows to prevent COM exceptions and to free memory. See #35. The COM exceptions from a growing set of unavailable elements may be the cause of degrading performance as well.
Use the RuntimeId property to speed up equality comparison for known elements and windows. Along with this, catch possible COM exceptions during equality comparison if the element is no longer available. Closes #35.
ab10ea2
to
249137d
Compare
I've done a quick performance profile and pushed an update that uses the RuntimeId for a fast initial comparison. I have tested with your manual performance test scenario and it seems to work! |
Thanks! This does seem to improve things, but also causes #42 :( |
To give a bit more details on how much this helped: The Avalonia integration test suite before this PR took over an hour to run. After this PR, it takes less than 4 minutes ;) (This is without cleanup running, I commented that out due to #42). |
Great job!
Thank you
…On Tue, May 14, 2024 at 1:10 PM Steven Kirk ***@***.***> wrote:
To give a bit more details on how much this helped:
The Avalonia integration test suite
<https://github.com/AvaloniaUI/Avalonia/tree/master/tests/Avalonia.IntegrationTests.Appium>
before this PR took over an hour to run. After this PR, it takes less than
4 minutes ;)
—
Reply to this email directly, view it on GitHub
<#41 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AFYWZO6SRZV36XG73EACUWLZCHPJFAVCNFSM6AAAAABHNOMO7GVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMBZHAYDMOJRGE>
.
You are receiving this because your review was requested.Message ID:
***@***.***>
|
Evict unavailable elements to prevent COM exceptions and to free memory. See #35. The COM exceptions from a growing set of unavailable elements may be the cause of degrading performance as well.