-
-
Notifications
You must be signed in to change notification settings - Fork 427
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鈥檒l occasionally send you account related emails.
Already on GitHub? Sign in to your account
moved average benchmark results to p90 results #2152
Conversation
increased the measured iterations from 15 to 20 by default removed testOrchestrator option from saucelabs config and gradle profiling benchmark now prints raw values to the console, to later read them from the log file Benchmarks in SauceLabs will now run on 2 devices with Andorid 12, 3 with Android 11, 2 with Android 10
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gave this a quick pass. What's missing to finish this PR, @stefanosiano?
sentry-android-integration-tests/sentry-uitest-android-benchmark/build.gradle.kts
Show resolved
Hide resolved
Just a few changes on how to calculate the p90 values, as benchmarks are failing because of it 馃槄 |
updated the percentile calculation method warmup iterations reduced from 3 to 2 the measured iterations now run in alternated order added proguard file to fix ui-tests changed low-end Android 10 device to a less powerful device sdk init duration increase threshold increased to 250 milliseconds cpu overhead range for the same operation increased to -2%..2% even if we print all values, we just assert on the cpu overhead added a test to send profiles to a Sentry project (dogfooding test)
Codecov Report
@@ Coverage Diff @@
## main #2152 +/- ##
============================================
- Coverage 80.95% 80.94% -0.02%
- Complexity 3257 3290 +33
============================================
Files 231 233 +2
Lines 11964 12044 +80
Branches 1589 1594 +5
============================================
+ Hits 9686 9749 +63
- Misses 1698 1712 +14
- Partials 580 583 +3
Continue to review full report at Codecov.
|
The only thing is that benchmarks take around 1 hour to run. |
Faster would be better, of course. What's the bottleneck? How could we reduce this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but ideally, we reduce the 1h duration.
...n-tests/sentry-uitest-android/src/androidTest/java/io/sentry/uitest/android/EnvelopeTests.kt
Outdated
Show resolved
Hide resolved
...ests/sentry-uitest-android/src/main/java/io/sentry/uitest/android/ProfilingSampleActivity.kt
Show resolved
Hide resolved
There is this pr, with a slack thread on that and some consideration on this notion doc |
added a flag to stop fibonacci on activity pause
useTestOrchestrator: true | ||
- id: OnePlus_9_Pro_real_us # OnePlus 9 Pro - api 30 (11) - high end | ||
- id: Google_Pixel_4_real_us # Google Pixel 4 - api 30 (11) - mid end | ||
- id: Google_Pixel_2_real_us # Google Pixel 2 - api 30 (11) - low end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure if Pixel 2 is really a low-end device, but that's alright I guess
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's one of the lowest-end provided by saucelabs for android 11. The other at ~same level should be Samsung Galaxy A50, but the pixel 2 is a 5 years old device, so it's fine for benchmarks
fun printAllRuns(prefix: String) { | ||
repeat(iterations) { index -> | ||
|
||
println("$prefix ==================== Iteration $index ====================") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just for me to understand - this is gonna be printed into Logcat and later you pull this through adb probably, and parse, correct?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's printed to console, which then it's written in the device.log
from saucelabs. Then I will download the log file and parse it locally.
Later all of this will be automated when an endpoint to send data to will be available
馃摐 Description
馃挕 Motivation and Context
#skip-changelog
馃挌 How did you test it?
I ran the saucelabs commands manually, and the tests ran perfectly fine. 馃コ
馃摑 Checklist
馃敭 Next steps
We will send the benchmark data to a specific endpoint, but this will be done in another pr later.
I just need to check the log files and if we can get all the values just fine.