Skip to content

perf(6596): audit createDeepEqualSelector usage#41490

Merged
DDDDDanica merged 7 commits intomainfrom
refactore/6596-createDeepEqualSelector-audit
Apr 8, 2026
Merged

perf(6596): audit createDeepEqualSelector usage#41490
DDDDDanica merged 7 commits intomainfrom
refactore/6596-createDeepEqualSelector-audit

Conversation

@DDDDDanica
Copy link
Copy Markdown
Contributor

@DDDDDanica DDDDDanica commented Apr 6, 2026

[skip-e2e]

Description

We’re reviewing where createDeepEqualSelector is used so we only pay deep-equality memoization where it’s justified. Some selectors were using it for cheap derivations or for parameterized “factory” selectors, which is easy to misuse and can add avoidable work. What is included in this PR:

  • Avoid unnecessary deep equality on selector outputs where referential stability from input selectors is enough.
  • Fix parameterized notification lookup so it doesn’t build unbounded memoized selectors per id.

Changelog

CHANGELOG entry: null

Related issues

Fixes: https://github.com/MetaMask/MetaMask-planning/issues/6596

Manual testing steps

  1. Go to this page...

Screenshots/Recordings

Before

After

Pre-merge author checklist

Pre-merge reviewer checklist

  • I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed).
  • I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots.

Note

Medium Risk
Touches a broad set of Redux selectors and memoization strategies; while intended to be behavior-preserving, changes could subtly affect memoization/caching and trigger unexpected re-renders or stale/extra recomputations.

Overview
Reduces unnecessary deep-equality selector memoization by switching several cheap/stable selectors from createDeepEqualSelector to createSelector, and by updating imports to use shared/lib/selectors/selector-creators directly (removing the shared/lib/selectors/util re-export).

Fixes parameterized notification lookup by replacing the per-id selector factory getMetamaskNotificationById(id) with a bounded LRU createParameterizedSelector implementation getMetamaskNotificationById(state, id), updating NotificationDetails to use the new signature via useAppSelector, and adding coverage for the missing-notification redirect and selector behavior.

Reviewed by Cursor Bugbot for commit c89236f. Bugbot is set up for automated code reviews on this repo. Configure here.

@DDDDDanica DDDDDanica self-assigned this Apr 6, 2026
@DDDDDanica DDDDDanica added the team-extension-platform Extension Platform team label Apr 6, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 6, 2026

CLA Signature Action: All authors have signed the CLA. You may need to manually re-run the blocking PR check if it doesn't pass in a few minutes.

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 6, 2026

✨ Files requiring CODEOWNER review ✨

🔑 @MetaMask/accounts-engineers (1 files, +1 -1)
  • 📁 ui/
    • 📁 selectors/
      • 📁 multichain-accounts/
        • 📄 account-tree.ts +1 -1

@MetaMask/confirmations (2 files, +2 -2)
  • 📁 ui/
    • 📁 pages/
      • 📁 confirmations/
        • 📁 selectors/
          • 📄 accounts.ts +1 -1
          • 📄 confirm.ts +1 -1

🫰 @MetaMask/core-platform (2 files, +2 -2)
  • 📁 ui/
    • 📁 selectors/
      • 📁 snaps/
        • 📄 address-book.ts +1 -1
        • 📄 currency.ts +1 -1

🔔 @MetaMask/notifications (4 files, +91 -16)
  • 📁 ui/
    • 📁 pages/
      • 📁 notification-details/
        • 📄 notification-details.test.tsx +54 -0
        • 📄 notification-details.tsx +4 -2
    • 📁 selectors/
      • 📁 metamask-notifications/
        • 📄 metamask-notifications.test.ts +22 -0
        • 📄 metamask-notifications.ts +11 -14

🔄 @MetaMask/swaps-engineers (1 files, +1 -1)
  • 📁 ui/
    • 📁 ducks/
      • 📁 bridge/
        • 📄 selectors.ts +1 -1

@github-actions github-actions bot added the size-S label Apr 6, 2026
@DDDDDanica DDDDDanica force-pushed the refactore/6596-createDeepEqualSelector-audit branch from 2d21371 to 7db465b Compare April 7, 2026 09:50
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 7, 2026

Builds ready [7db465b]
⚡ Performance Benchmarks (Total: 🟢 6 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24075256243 | Baseline logs

Interaction Benchmarks
Benchmarkchrome-browserify
loadNewAccount
🟡 load_new_account
[Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.6s
Startup Benchmarks
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/load: -17%
  • startupStandardHome/domContentLoaded: -19%
  • startupStandardHome/firstReactRender: -13%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -21%
  • startupPowerUserHome/uiStartup: -12%
  • startupPowerUserHome/backgroundConnect: +88%
  • startupPowerUserHome/numNetworkReqs: -52%
  • startupStandardHome/uiStartup: -15%
  • startupStandardHome/load: -15%
  • startupStandardHome/domContentLoaded: -14%
  • startupStandardHome/backgroundConnect: -37%
  • startupStandardHome/firstReactRender: -24%
  • startupStandardHome/loadScripts: -14%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -20%
  • startupPowerUserHome/numNetworkReqs: -17%
  • startupStandardHome/domInteractive: -48%
  • startupStandardHome/initialActions: +25%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -11%
  • startupPowerUserHome/backgroundConnect: -39%
  • startupPowerUserHome/setupStore: +12%
  • startupStandardHome/domInteractive: -27%
  • startupStandardHome/backgroundConnect: -14%
  • startupStandardHome/initialActions: -44%
  • startupStandardHome/setupStore: -54%
  • startupStandardHome/numNetworkReqs: -13%
  • startupPowerUserHome/backgroundConnect: -28%
  • startupPowerUserHome/setupStore: -19%
  • startupPowerUserHome/numNetworkReqs: -12%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 688ms
  • 🔴 startupPowerUserHome/INP: p75 672ms
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
  • 🟡 startupPowerUserHome/LCP: p75 3.8s
User Journey Benchmarks
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/metricsToWalletReadyScreen: -34%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +35%
  • onboardingImportWallet/total: -38%
  • onboardingNewWallet/skipBackupToMetricsScreen: -17%
  • onboardingNewWallet/agreeButtonToOnboardingSuccess: +15%
  • onboardingNewWallet/doneButtonToAssetList: -44%
  • onboardingNewWallet/total: -36%
  • assetDetails/assetClickToPriceChart: -66%
  • assetDetails/total: -66%
  • solanaAssetDetails/assetClickToPriceChart: -62%
  • solanaAssetDetails/total: -62%
  • importSrpHome/openAccountMenuAfterLogin: -67%
  • importSrpHome/homeAfterImportWithNewWallet: -40%
  • importSrpHome/total: -34%
  • sendTransactions/openSendPageFromHome: +50%
  • sendTransactions/selectTokenToSendFormLoaded: -12%
  • swap/openSwapPageFromHome: -86%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 232ms
  • 🟡 assetDetails/FCP: p75 2.8s
  • 🟡 solanaAssetDetails/FCP: p75 2.5s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 208ms
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.5s
🌐 Dapp Page Load Benchmarks

Current Commit: 7db465b | Date: 4/7/2026

📄 Localhost MetaMask Test Dapp

Samples: 100

Summary

  • pageLoadTime-> current mean value: 1.04s (±37ms) 🟡 | historical mean value: 1.03s ⬆️ (historical data)
  • domContentLoaded-> current mean value: 736ms (±35ms) 🟢 | historical mean value: 726ms ⬆️ (historical data)
  • firstContentfulPaint-> current mean value: 85ms (±9ms) 🟢 | historical mean value: 86ms ⬇️ (historical data)

📈 Detailed Results

Metric Mean Std Dev Min Max P95 P99
pageLoadTime 1.04s 37ms 1.02s 1.33s 1.08s 1.33s
domContentLoaded 736ms 35ms 709ms 1.01s 770ms 1.01s
firstPaint 85ms 9ms 72ms 160ms 92ms 160ms
firstContentfulPaint 85ms 9ms 72ms 160ms 92ms 160ms
largestContentfulPaint 0ms 0ms 0ms 0ms 0ms 0ms
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: -92 Bytes (0%)
  • common: -34 Bytes (0%)

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 7, 2026

Builds ready [5dfe952]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24078424457 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -17%
  • loadNewAccount/total: -17%
  • bridgeUserActions/bridge_search_token: -11%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -15%
  • startupStandardHome/backgroundConnect: +12%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -18%
  • startupStandardHome/numNetworkReqs: -21%
  • startupPowerUserHome/uiStartup: -16%
  • startupPowerUserHome/backgroundConnect: +105%
  • startupPowerUserHome/setupStore: +17%
  • startupStandardHome/uiStartup: -12%
  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -10%
  • startupStandardHome/firstPaint: +13%
  • startupStandardHome/backgroundConnect: -32%
  • startupStandardHome/firstReactRender: -28%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -22%
  • startupPowerUserHome/numNetworkReqs: +25%
  • startupStandardHome/domInteractive: -55%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/setupStore: +14%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/uiStartup: -11%
  • startupPowerUserHome/domInteractive: -17%
  • startupPowerUserHome/backgroundConnect: -39%
  • startupPowerUserHome/firstReactRender: +11%
  • startupStandardHome/domInteractive: -32%
  • startupStandardHome/backgroundConnect: -16%
  • startupStandardHome/initialActions: +11%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/backgroundConnect: -20%
  • startupPowerUserHome/numNetworkReqs: -13%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 664ms
  • 🔴 startupPowerUserHome/INP: p75 616ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
  • 🟡 startupPowerUserHome/INP: p75 208ms
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/doneButtonToHomeScreen: -73%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +23%
  • onboardingImportWallet/total: -39%
  • onboardingNewWallet/skipBackupToMetricsScreen: -13%
  • onboardingNewWallet/doneButtonToAssetList: -25%
  • onboardingNewWallet/total: -21%
  • assetDetails/assetClickToPriceChart: -62%
  • assetDetails/total: -62%
  • solanaAssetDetails/assetClickToPriceChart: -51%
  • solanaAssetDetails/total: -51%
  • importSrpHome/openAccountMenuAfterLogin: -65%
  • importSrpHome/homeAfterImportWithNewWallet: -36%
  • importSrpHome/total: -31%
  • sendTransactions/openSendPageFromHome: +116%
  • sendTransactions/selectTokenToSendFormLoaded: -16%
  • sendTransactions/reviewTransactionToConfirmationPage: +23%
  • sendTransactions/total: +25%
  • swap/openSwapPageFromHome: -84%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +14%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 240ms
  • 🟡 assetDetails/FCP: p75 2.6s
  • 🟡 solanaAssetDetails/FCP: p75 2.6s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 908 Bytes (0.01%)
  • common: -34 Bytes (0%)

@DDDDDanica DDDDDanica marked this pull request as ready for review April 7, 2026 13:05
@DDDDDanica DDDDDanica requested a review from a team as a code owner April 7, 2026 13:05
@DDDDDanica DDDDDanica enabled auto-merge April 7, 2026 13:36
@DDDDDanica DDDDDanica force-pushed the refactore/6596-createDeepEqualSelector-audit branch from 5dfe952 to 6c603c9 Compare April 7, 2026 13:39
jbblanc
jbblanc previously approved these changes Apr 7, 2026
@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 7, 2026

Builds ready [676f823]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24091095162 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • bridgeUserActions/bridge_load_asset_picker: -21%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.5s
  • 🟡 confirmTx/FCP: p75 2.5s
  • 🟡 bridgeUserActions/FCP: p75 2.5s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/load: -11%
  • startupStandardHome/domContentLoaded: -13%
  • startupStandardHome/backgroundConnect: +13%
  • startupStandardHome/firstReactRender: -13%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -15%
  • startupStandardHome/numNetworkReqs: -13%
  • startupPowerUserHome/backgroundConnect: +121%
  • startupPowerUserHome/setupStore: +11%
  • startupStandardHome/uiStartup: -13%
  • startupStandardHome/load: -12%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/backgroundConnect: -34%
  • startupStandardHome/firstReactRender: -20%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/setupStore: -14%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -25%
  • startupPowerUserHome/numNetworkReqs: +25%
  • startupStandardHome/domInteractive: -55%
  • startupStandardHome/initialActions: +25%
  • startupPowerUserHome/backgroundConnect: -29%
  • startupStandardHome/domInteractive: -42%
  • startupStandardHome/backgroundConnect: -24%
  • startupStandardHome/initialActions: -44%
  • startupStandardHome/setupStore: -60%
  • startupStandardHome/numNetworkReqs: -11%
  • startupPowerUserHome/domInteractive: -14%
  • startupPowerUserHome/backgroundConnect: -19%
  • startupPowerUserHome/setupStore: -11%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 632ms
  • 🔴 startupPowerUserHome/INP: p75 720ms
  • 🟡 startupPowerUserHome/LCP: p75 3.5s
  • 🟡 startupPowerUserHome/LCP: p75 3.6s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -33%
  • onboardingImportWallet/doneButtonToHomeScreen: -75%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +24%
  • onboardingImportWallet/total: -40%
  • onboardingNewWallet/srpButtonToPwForm: -79%
  • onboardingNewWallet/skipBackupToMetricsScreen: -68%
  • onboardingNewWallet/doneButtonToAssetList: -35%
  • onboardingNewWallet/total: -34%
  • assetDetails/assetClickToPriceChart: -75%
  • assetDetails/total: -75%
  • solanaAssetDetails/assetClickToPriceChart: -68%
  • solanaAssetDetails/total: -68%
  • importSrpHome/openAccountMenuAfterLogin: -76%
  • importSrpHome/homeAfterImportWithNewWallet: -38%
  • importSrpHome/total: -32%
  • sendTransactions/selectTokenToSendFormLoaded: -26%
  • sendTransactions/reviewTransactionToConfirmationPage: +30%
  • sendTransactions/total: +28%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +32%
  • swap/total: +12%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 208ms
  • 🟡 assetDetails/FCP: p75 2.4s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/INP: p75 232ms
  • 🟡 importSrpHome/FCP: p75 2.5s
  • 🟡 sendTransactions/INP: p75 216ms
  • 🟡 sendTransactions/FCP: p75 2.4s
  • 🟡 swap/FCP: p75 2.4s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs
  • background: 58 Bytes (0%)
  • ui: 212 Bytes (0%)
  • common: -532 Bytes (0%)

…lector-audit' into refactore/6596-createDeepEqualSelector-audit
Copy link
Copy Markdown

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c89236f. Configure here.

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Apr 7, 2026

@metamaskbotv2
Copy link
Copy Markdown
Contributor

metamaskbotv2 bot commented Apr 7, 2026

Builds ready [c89236f]
⚡ Performance Benchmarks (Total: 🟢 7 pass · 🟡 12 warn · 🔴 0 fail)

Baseline (latest main): f34f804 | Date: 9/10/58222 | Pipeline: 24108573292 | Baseline logs

Interaction Benchmarks · Samples: 5
Benchmarkchrome-browserify
loadNewAccount🟡 [Show logs]
confirmTx🟡 [Show logs]
bridgeUserActions🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • loadNewAccount/load_new_account: -18%
  • loadNewAccount/total: -18%
  • bridgeUserActions/bridge_load_page: -11%
  • bridgeUserActions/bridge_load_asset_picker: -42%
  • bridgeUserActions/bridge_search_token: -14%
  • bridgeUserActions/total: -15%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 loadNewAccount/FCP: p75 2.4s
  • 🟡 confirmTx/FCP: p75 2.4s
  • 🟡 bridgeUserActions/FCP: p75 2.3s
Startup Benchmarks · Samples: 100
Benchmarkchrome-browserifychrome-webpackfirefox-browserifyfirefox-webpack
startupStandardHome🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]🟢 [Show logs]
startupPowerUserHome
🟡 uiStartup
[Show logs]
🟡 [Show logs]🟡 [Show logs]🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/domInteractive: +11%
  • startupStandardHome/backgroundConnect: +15%
  • startupStandardHome/initialActions: -38%
  • startupStandardHome/loadScripts: -15%
  • startupPowerUserHome/backgroundConnect: +125%
  • startupPowerUserHome/setupStore: +17%
  • startupStandardHome/uiStartup: -11%
  • startupStandardHome/load: -13%
  • startupStandardHome/domContentLoaded: -12%
  • startupStandardHome/backgroundConnect: -30%
  • startupStandardHome/firstReactRender: -24%
  • startupStandardHome/loadScripts: -12%
  • startupStandardHome/numNetworkReqs: -29%
  • startupPowerUserHome/domInteractive: -24%
  • startupPowerUserHome/firstPaint: -13%
  • startupStandardHome/initialActions: +25%
  • startupStandardHome/setupStore: +14%
  • startupPowerUserHome/backgroundConnect: -38%
  • startupPowerUserHome/firstReactRender: +11%
  • startupPowerUserHome/setupStore: -19%
  • startupStandardHome/uiStartup: -12%
  • startupStandardHome/domInteractive: -30%
  • startupStandardHome/backgroundConnect: -23%
  • startupStandardHome/firstReactRender: -12%
  • startupStandardHome/initialActions: -44%
  • startupStandardHome/loadScripts: -10%
  • startupStandardHome/setupStore: -63%
  • startupStandardHome/numNetworkReqs: -18%
  • startupPowerUserHome/backgroundConnect: -25%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🔴 startupPowerUserHome/INP: p75 632ms
  • 🔴 startupPowerUserHome/INP: p75 600ms
  • 🟡 startupPowerUserHome/LCP: p75 3.7s
  • 🟡 startupPowerUserHome/INP: p75 240ms
  • 🟡 startupPowerUserHome/LCP: p75 3.4s
User Journey Benchmarks · Samples: 5 · mock API
Benchmarkchrome-browserify
onboardingImportWallet🟢 [Show logs]
onboardingNewWallet🟢 [Show logs]
assetDetails🟡 [Show logs]
solanaAssetDetails🟡 [Show logs]
importSrpHome🟡 [Show logs]
sendTransactions🟡 [Show logs]
swap🟡 [Show logs]

📈 Results compared to the previous 5 runs on main

  • onboardingImportWallet/srpButtonToSrpForm: -85%
  • onboardingImportWallet/metricsToWalletReadyScreen: -45%
  • onboardingImportWallet/doneButtonToHomeScreen: -73%
  • onboardingImportWallet/openAccountMenuToAccountListLoaded: +32%
  • onboardingImportWallet/total: -39%
  • onboardingNewWallet/srpButtonToPwForm: -78%
  • onboardingNewWallet/skipBackupToMetricsScreen: -65%
  • onboardingNewWallet/doneButtonToAssetList: -27%
  • onboardingNewWallet/total: -27%
  • assetDetails/assetClickToPriceChart: -73%
  • assetDetails/total: -73%
  • solanaAssetDetails/assetClickToPriceChart: -70%
  • solanaAssetDetails/total: -70%
  • importSrpHome/openAccountMenuAfterLogin: -71%
  • importSrpHome/homeAfterImportWithNewWallet: -70%
  • importSrpHome/total: -61%
  • sendTransactions/openSendPageFromHome: -25%
  • sendTransactions/selectTokenToSendFormLoaded: -29%
  • sendTransactions/reviewTransactionToConfirmationPage: +36%
  • sendTransactions/total: +32%
  • swap/openSwapPageFromHome: -96%
  • swap/fetchAndDisplaySwapQuotes: +31%
  • swap/total: +12%

🌐 Core Web Vitals — 🟢 good · 🟡 needs improvement · 🔴 poor (web.dev thresholds)

  • 🟡 assetDetails/INP: p75 224ms
  • 🟡 assetDetails/FCP: p75 2.7s
  • 🟡 solanaAssetDetails/FCP: p75 2.4s
  • 🟡 importSrpHome/INP: p75 216ms
  • 🟡 importSrpHome/FCP: p75 2.4s
  • 🟡 sendTransactions/INP: p75 240ms
  • 🟡 sendTransactions/FCP: p75 2.5s
  • 🟡 swap/FCP: p75 2.5s
Dapp Page Load Benchmarks · Samples: 100
Benchmarkchrome-browserify
dappPageLoad🟢 [Show logs]
Bundle size diffs
  • background: -24 Bytes (0%)
  • ui: 605 Bytes (0.01%)
  • common: -479 Bytes (0%)

@DDDDDanica DDDDDanica disabled auto-merge April 8, 2026 12:33
@DDDDDanica DDDDDanica enabled auto-merge April 8, 2026 12:33
@DDDDDanica DDDDDanica added this pull request to the merge queue Apr 8, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Apr 8, 2026
@baptiste-marchand baptiste-marchand added this pull request to the merge queue Apr 8, 2026
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Apr 8, 2026
@DDDDDanica DDDDDanica enabled auto-merge April 8, 2026 16:48
@DDDDDanica DDDDDanica added this pull request to the merge queue Apr 8, 2026
@DDDDDanica DDDDDanica changed the title refactor(6596): audit createDeepEqualSelector usage perf(6596): audit createDeepEqualSelector usage Apr 8, 2026
Merged via the queue into main with commit a26f5f1 Apr 8, 2026
403 of 406 checks passed
@DDDDDanica DDDDDanica deleted the refactore/6596-createDeepEqualSelector-audit branch April 8, 2026 18:33
@github-actions github-actions bot locked and limited conversation to collaborators Apr 8, 2026
@metamaskbot metamaskbot added the release-13.27.0 Issue or pull request that will be included in release 13.27.0 label Apr 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants