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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

Measure Dart SDK size overhead #2482

wants to merge 1 commit into from

Conversation

denrase
Copy link
Collaborator

@denrase denrase commented Dec 11, 2024

📜 Description

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

💡 Motivation and Context

Relates to #2437

💚 How did you test it?

📝 Checklist

  • I reviewed submitted code
  • I added tests to verify changes
  • No new PII added or SDK only sends newly added PII if sendDefaultPii is enabled
  • I updated the docs if needed
  • All tests passing
  • No breaking changes

🔮 Next steps

@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

iOS Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1257.37 ms 1286.13 ms 28.76 ms
Size 8.38 MiB 9.78 MiB 1.40 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
7f14ddd 1247.36 ms 1269.89 ms 22.53 ms
d5f600b 1220.79 ms 1232.93 ms 12.14 ms
9f9dd52 1364.63 ms 1394.89 ms 30.25 ms
873fb42 1261.00 ms 1285.92 ms 24.92 ms
8e133ad 1268.19 ms 1277.37 ms 9.18 ms
752e1cb 1250.00 ms 1267.84 ms 17.84 ms
202b83f 1206.16 ms 1225.33 ms 19.16 ms
4477d2e 1203.00 ms 1225.90 ms 22.90 ms
7c7c64f 1243.85 ms 1272.30 ms 28.45 ms
464b4d0 1249.02 ms 1261.22 ms 12.20 ms

App size

Revision Plain With Sentry Diff
7f14ddd 8.33 MiB 9.64 MiB 1.31 MiB
d5f600b 8.32 MiB 9.38 MiB 1.05 MiB
9f9dd52 8.33 MiB 9.63 MiB 1.29 MiB
873fb42 8.16 MiB 9.17 MiB 1.01 MiB
8e133ad 8.10 MiB 9.16 MiB 1.07 MiB
752e1cb 8.38 MiB 9.75 MiB 1.37 MiB
202b83f 8.33 MiB 9.40 MiB 1.07 MiB
4477d2e 8.32 MiB 9.38 MiB 1.06 MiB
7c7c64f 8.38 MiB 9.75 MiB 1.37 MiB
464b4d0 8.10 MiB 9.16 MiB 1.07 MiB

Copy link
Contributor

Android Performance metrics 🚀

  Plain With Sentry Diff
Startup time 471.16 ms 519.36 ms 48.20 ms
Size 6.49 MiB 7.57 MiB 1.08 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
74e1fdd 398.61 ms 418.43 ms 19.82 ms
b49bf00 323.46 ms 375.35 ms 51.89 ms
d0312c9 354.78 ms 411.53 ms 56.75 ms
7f2b01d 304.94 ms 345.71 ms 40.78 ms
521cfbf 332.78 ms 376.04 ms 43.26 ms
039058a 448.52 ms 512.55 ms 64.03 ms
24b6e60 440.64 ms 557.96 ms 117.32 ms
33d0587 308.79 ms 370.86 ms 62.07 ms
2b9937e 439.68 ms 478.38 ms 38.70 ms
f056db1 426.04 ms 475.76 ms 49.72 ms

App size

Revision Plain With Sentry Diff
74e1fdd 6.33 MiB 7.27 MiB 954.12 KiB
b49bf00 6.06 MiB 7.10 MiB 1.04 MiB
d0312c9 6.33 MiB 7.26 MiB 949.76 KiB
7f2b01d 5.94 MiB 6.95 MiB 1.01 MiB
521cfbf 5.94 MiB 6.97 MiB 1.03 MiB
039058a 6.52 MiB 7.59 MiB 1.06 MiB
24b6e60 6.33 MiB 7.26 MiB 950.14 KiB
33d0587 6.16 MiB 7.14 MiB 1007.47 KiB
2b9937e 6.49 MiB 7.56 MiB 1.07 MiB
f056db1 6.52 MiB 7.61 MiB 1.09 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.

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