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

feat(ttid): Add support for measuring Time to Initial Display for already seen routes #4661

Merged
merged 3 commits into from
Mar 21, 2025

Conversation

krystofwoldrich
Copy link
Member

📢 Type of change

  • Enhancement

📜 Description

  • Introduced enableTimeToInitialDisplayForPreloadedRoutes option to the React Navigation integration.
  • Updated logic to measure Time to Initial Display for routes that have already been seen.
  • Added tests to verify functionality for preloaded routes in the tracing module.

💡 Motivation and Context

Depending on an application, this can improve the number of transactions with TTID measurements.

Originally we excluded already seen routes with the idea that the seen route is already loaded.

But routes that have been seen, can on the next visit refresh their context and this PR enables users to measure the time this next visit takes to load.

💚 How did you test it?

integration test, manually in sample app

📝 Checklist

  • 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.
  • I updated the wizard if needed.
  • All tests passing
  • No breaking changes

…eady seen routes

- Introduced `enableTimeToInitialDisplayForPreloadedRoutes` option to the React Navigation integration.
- Updated logic to measure Time to Initial Display for routes that have already been seen.
- Added tests to verify functionality for preloaded routes in the tracing module.
Copy link
Contributor

github-actions bot commented Mar 14, 2025

Messages
📖 Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by 🚫 dangerJS against 59268ca

Copy link
Contributor

github-actions bot commented Mar 14, 2025

Android (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 424.37 ms 465.44 ms 41.07 ms
Size 17.75 MiB 20.13 MiB 2.38 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
79976dd 456.94 ms 439.17 ms -17.76 ms
686b3bc 469.59 ms 474.41 ms 4.82 ms
5446992 403.40 ms 426.70 ms 23.30 ms
db44eaf 437.65 ms 436.06 ms -1.59 ms
86d6d2c+dirty 332.90 ms 352.45 ms 19.55 ms
22e31b6 396.48 ms 419.64 ms 23.16 ms
eb1e19f 433.55 ms 444.90 ms 11.35 ms
e5c9b8b 409.02 ms 426.66 ms 17.64 ms
43c72ff 480.54 ms 475.02 ms -5.52 ms
c639edf 466.48 ms 489.57 ms 23.09 ms

App size

Revision Plain With Sentry Diff
79976dd 17.75 MiB 20.11 MiB 2.36 MiB
686b3bc 17.75 MiB 20.11 MiB 2.37 MiB
5446992 17.73 MiB 19.85 MiB 2.12 MiB
db44eaf 17.74 MiB 20.08 MiB 2.35 MiB
86d6d2c+dirty 17.73 MiB 20.04 MiB 2.31 MiB
22e31b6 17.73 MiB 19.84 MiB 2.10 MiB
eb1e19f 17.74 MiB 20.08 MiB 2.34 MiB
e5c9b8b 17.73 MiB 19.83 MiB 2.10 MiB
43c72ff 17.75 MiB 20.12 MiB 2.37 MiB
c639edf 17.74 MiB 20.08 MiB 2.34 MiB

Copy link
Contributor

Android (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 437.31 ms 486.30 ms 48.99 ms
Size 7.15 MiB 8.39 MiB 1.23 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
6e8584e+dirty 383.37 ms 400.84 ms 17.47 ms
3aecc61+dirty 375.18 ms 442.58 ms 67.40 ms
5446992+dirty 371.61 ms 390.00 ms 18.39 ms
dadc233+dirty 363.19 ms 370.37 ms 7.18 ms
d16beca+dirty 389.49 ms 423.86 ms 34.37 ms
c991c90+dirty 270.25 ms 290.85 ms 20.60 ms
8fe7c9d+dirty 363.91 ms 429.93 ms 66.03 ms
ed3d77e+dirty 366.04 ms 411.33 ms 45.28 ms
c314a21+dirty 419.41 ms 426.02 ms 6.61 ms
b6f8ea2+dirty 397.51 ms 457.40 ms 59.88 ms

App size

Revision Plain With Sentry Diff
6e8584e+dirty 7.15 MiB 8.13 MiB 1002.18 KiB
3aecc61+dirty 7.15 MiB 8.38 MiB 1.23 MiB
5446992+dirty 7.15 MiB 8.12 MiB 999.45 KiB
dadc233+dirty 7.15 MiB 8.04 MiB 910.84 KiB
d16beca+dirty 7.15 MiB 8.37 MiB 1.22 MiB
c991c90+dirty 7.15 MiB 8.38 MiB 1.22 MiB
8fe7c9d+dirty 7.15 MiB 8.38 MiB 1.23 MiB
ed3d77e+dirty 7.15 MiB 8.35 MiB 1.21 MiB
c314a21+dirty 7.15 MiB 8.39 MiB 1.23 MiB
b6f8ea2+dirty 7.15 MiB 8.38 MiB 1.23 MiB

Copy link
Contributor

github-actions bot commented Mar 14, 2025

iOS (legacy) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1230.33 ms 1228.29 ms -2.04 ms
Size 2.63 MiB 3.76 MiB 1.13 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
5852d77+dirty 1210.16 ms 1222.60 ms 12.44 ms
9433f35+dirty 1246.94 ms 1271.45 ms 24.52 ms
6707be9+dirty 1226.84 ms 1228.35 ms 1.52 ms
690220d+dirty 1228.27 ms 1233.55 ms 5.29 ms
31fcca2+dirty 1209.17 ms 1216.21 ms 7.04 ms
d7401ac+dirty 1252.38 ms 1275.04 ms 22.66 ms
a5d86e1+dirty 1242.47 ms 1239.94 ms -2.53 ms
3ffcddd+dirty 1244.47 ms 1264.14 ms 19.67 ms
1faf8e3+dirty 1214.87 ms 1222.83 ms 7.97 ms
3f05680+dirty 1229.37 ms 1235.04 ms 5.68 ms

App size

Revision Plain With Sentry Diff
5852d77+dirty 2.63 MiB 3.74 MiB 1.11 MiB
9433f35+dirty 2.36 MiB 2.85 MiB 499.80 KiB
6707be9+dirty 2.63 MiB 3.74 MiB 1.11 MiB
690220d+dirty 2.36 MiB 3.10 MiB 753.57 KiB
31fcca2+dirty 2.36 MiB 2.90 MiB 552.95 KiB
d7401ac+dirty 2.36 MiB 2.83 MiB 481.14 KiB
a5d86e1+dirty 2.36 MiB 3.10 MiB 752.65 KiB
3ffcddd+dirty 2.36 MiB 2.84 MiB 489.60 KiB
1faf8e3+dirty 2.36 MiB 3.08 MiB 736.75 KiB
3f05680+dirty 2.63 MiB 3.74 MiB 1.11 MiB

Copy link
Contributor

github-actions bot commented Mar 14, 2025

iOS (new) Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1236.20 ms 1239.94 ms 3.74 ms
Size 3.19 MiB 4.33 MiB 1.14 MiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
5852d77+dirty 1226.88 ms 1236.38 ms 9.50 ms
9433f35+dirty 1232.24 ms 1232.74 ms 0.50 ms
6707be9+dirty 1236.40 ms 1241.56 ms 5.17 ms
690220d+dirty 1227.45 ms 1221.67 ms -5.78 ms
31fcca2+dirty 1222.04 ms 1226.51 ms 4.47 ms
d7401ac+dirty 1288.10 ms 1289.54 ms 1.44 ms
a5d86e1+dirty 1230.35 ms 1222.47 ms -7.88 ms
3ffcddd+dirty 1272.22 ms 1273.98 ms 1.76 ms
1faf8e3+dirty 1223.38 ms 1220.56 ms -2.82 ms
3f05680+dirty 1226.09 ms 1235.67 ms 9.59 ms

App size

Revision Plain With Sentry Diff
5852d77+dirty 3.19 MiB 4.30 MiB 1.12 MiB
9433f35+dirty 2.92 MiB 3.41 MiB 503.55 KiB
6707be9+dirty 3.19 MiB 4.31 MiB 1.12 MiB
690220d+dirty 2.92 MiB 3.66 MiB 758.77 KiB
31fcca2+dirty 2.92 MiB 3.46 MiB 557.31 KiB
d7401ac+dirty 2.92 MiB 3.40 MiB 488.06 KiB
a5d86e1+dirty 2.92 MiB 3.66 MiB 757.10 KiB
3ffcddd+dirty 2.92 MiB 3.40 MiB 494.39 KiB
1faf8e3+dirty 2.92 MiB 3.64 MiB 742.61 KiB
3f05680+dirty 3.19 MiB 4.31 MiB 1.12 MiB

Copy link
Collaborator

@antonis antonis left a comment

Choose a reason for hiding this comment

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

LGTM 🚀

@krystofwoldrich krystofwoldrich enabled auto-merge (squash) March 21, 2025 11:29
@krystofwoldrich krystofwoldrich merged commit 7dca19f into main Mar 21, 2025
62 of 63 checks passed
@krystofwoldrich krystofwoldrich deleted the kw/add-ttid-for-already-seen-routes branch March 21, 2025 11:32
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