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

Measure Dart SDK size overhead #2482

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Measure Dart SDK size overhead #2482

wants to merge 5 commits into from

Conversation

denrase
Copy link
Collaborator

@denrase denrase commented Dec 11, 2024

#skip-changelog

📜 Description

Measure Sentry Dart SDK size overhead in a simple dart binary.

💡 Motivation and Context

Relates to #2437

@denrase
Copy link
Collaborator Author

denrase commented Dec 11, 2024

@vaind Would it make sense to measure binary size difference with getsentry/action-app-sdk-overhead-metrics for non iOS/Android files?

@vaind
Copy link
Collaborator

vaind commented Dec 11, 2024

@vaind Would it make sense to measure binary size difference with getsentry/action-app-sdk-overhead-metrics for non iOS/Android files?

Is it possible to determine that if we extract the packaged app? For end-users it likely doesn't make much sense - it's actually the whole dart+native that is added to their app (i.e. what we show at the moment), but if the info is there and it helps developers then yeah, it would be possible to add it to the PR comment.

Copy link
Contributor

github-actions bot commented Dec 11, 2024

iOS Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1257.23 ms 1273.63 ms 16.40 ms
Size 8.42 MiB 9.83 MiB 1.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
4c78360 1230.35 ms 1252.37 ms 22.01 ms
c57d3b7 1249.92 ms 1280.31 ms 30.39 ms
7359546 1252.02 ms 1271.55 ms 19.53 ms
3de8b9b 1234.22 ms 1251.94 ms 17.72 ms
1c6eb5b 1277.85 ms 1285.71 ms 7.86 ms
a49594a 1284.83 ms 1313.29 ms 28.45 ms
905bf99 1240.84 ms 1271.47 ms 30.63 ms
2d4fd8b 1207.98 ms 1232.94 ms 24.96 ms
6078ddc 1207.84 ms 1224.10 ms 16.27 ms
955541a 1230.22 ms 1252.96 ms 22.73 ms

App size

Revision Plain With Sentry Diff
4c78360 8.32 MiB 9.38 MiB 1.06 MiB
c57d3b7 8.32 MiB 9.52 MiB 1.20 MiB
7359546 8.42 MiB 9.83 MiB 1.40 MiB
3de8b9b 8.28 MiB 9.34 MiB 1.06 MiB
1c6eb5b 8.15 MiB 9.12 MiB 986.27 KiB
a49594a 8.16 MiB 9.16 MiB 1.00 MiB
905bf99 8.38 MiB 9.74 MiB 1.36 MiB
2d4fd8b 8.28 MiB 9.34 MiB 1.06 MiB
6078ddc 8.33 MiB 9.40 MiB 1.07 MiB
955541a 8.28 MiB 9.34 MiB 1.06 MiB

Previous results on branch: ci/dart-only-metrics

Startup times

Revision Plain With Sentry Diff
f497ca3 1257.37 ms 1286.13 ms 28.76 ms

App size

Revision Plain With Sentry Diff
f497ca3 8.38 MiB 9.78 MiB 1.40 MiB

Copy link
Contributor

github-actions bot commented Dec 11, 2024

Android Performance metrics 🚀

  Plain With Sentry Diff
Startup time 467.70 ms 560.80 ms 93.10 ms
Size 6.46 MiB 7.48 MiB 1.01 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
24b6e60 440.64 ms 557.96 ms 117.32 ms
04bd9e6 402.06 ms 483.56 ms 81.50 ms
0e0581f 474.61 ms 522.96 ms 48.35 ms
333903e 332.76 ms 406.86 ms 74.10 ms
3f3ef0b 382.24 ms 459.26 ms 77.02 ms
62de927 313.81 ms 358.15 ms 44.34 ms
e3ef570 389.71 ms 459.16 ms 69.45 ms
5d2b46d 307.74 ms 349.85 ms 42.11 ms
870f5eb 329.45 ms 369.29 ms 39.84 ms
4bcf446 497.87 ms 533.48 ms 35.61 ms

App size

Revision Plain With Sentry Diff
24b6e60 6.33 MiB 7.26 MiB 950.14 KiB
04bd9e6 6.35 MiB 7.34 MiB 1008.33 KiB
0e0581f 6.49 MiB 7.57 MiB 1.08 MiB
333903e 6.06 MiB 7.10 MiB 1.04 MiB
3f3ef0b 6.33 MiB 7.26 MiB 943.11 KiB
62de927 6.15 MiB 7.11 MiB 981.78 KiB
e3ef570 6.33 MiB 7.26 MiB 950.38 KiB
5d2b46d 6.16 MiB 7.13 MiB 1000.82 KiB
870f5eb 5.94 MiB 6.92 MiB 1005.77 KiB
4bcf446 6.49 MiB 7.56 MiB 1.07 MiB

Previous results on branch: ci/dart-only-metrics

Startup times

Revision Plain With Sentry Diff
f497ca3 471.16 ms 519.36 ms 48.20 ms

App size

Revision Plain With Sentry Diff
f497ca3 6.49 MiB 7.57 MiB 1.08 MiB

@vaind
Copy link
Collaborator

vaind commented Dec 11, 2024

@vaind Would it make sense to measure binary size difference with getsentry/action-app-sdk-overhead-metrics for non iOS/Android files?

Is it possible to determine that if we extract the packaged app? For end-users it likely doesn't make much sense - it's actually the whole dart+native that is added to their app (i.e. what we show at the moment), but if the info is there and it helps developers then yeah, it would be possible to add it to the PR comment.

Ah, I misunderstood. I thought you meant to measure the sentry dart/flutter SDK overhead on top of the native sentry SDK (which maybe be stored in different libs in the app) but you actually meant adding non-android/ios stuff to the action. Yes, that would definitely make sense and shouldn't be too hard to do. I've had that in mind when building the action in the first place so it should work out of the box or with minor adjustments.

@denrase denrase marked this pull request as ready for review December 17, 2024 13:51
@denrase
Copy link
Collaborator Author

denrase commented Dec 17, 2024

Ah, I misunderstood. I thought you meant to measure the sentry dart/flutter SDK overhead on top of the native sentry SDK (which maybe be stored in different libs in the app) but you actually meant adding non-android/ios stuff to the action. Yes, that would definitely make sense and shouldn't be too hard to do. I've had that in mind when building the action in the first place so it should work out of the box or with minor adjustments.

This pr is now building with a script and failing if we are over a simple threshold value. Would it make sense to extend the action in a separate PR? That way we won't be blocked here.


metrics-dart:
name: Console
runs-on: macos-latest
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

any specific reason why we run this on macos?

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.

3 participants