Page MenuHomePhabricator

[native] Add memoization to `SidebarItem`
ClosedPublic

Authored by atul on Sep 7 2023, 9:31 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Jul 15, 5:09 PM
Unknown Object (File)
Mon, Jul 15, 5:09 PM
Unknown Object (File)
Mon, Jul 15, 5:09 PM
Unknown Object (File)
Mon, Jul 15, 5:04 PM
Unknown Object (File)
Thu, Jul 11, 7:50 AM
Unknown Object (File)
Fri, Jul 5, 4:05 PM
Unknown Object (File)
Thu, Jul 4, 3:26 PM
Unknown Object (File)
Wed, Jul 3, 9:35 PM
Subscribers

Details

Summary

Call to shortAbsoluteDate in particular takes surprisingly long (like 5ms each time and it's re-rendering like 5 times and there are 5 instances so 5*5*5ms = 125ms total when doing the "navigate to thread w/ varun scenario").

Test Plan

Continues to work/appear as before.

Diff Detail

Repository
rCOMM Comm
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

atul published this revision for review.Sep 7 2023, 9:37 AM

Please wait for CI to pass before landing

native/chat/sidebar-item.react.js
19–22 ↗(On Diff #30847)

Doing a global search on this I've noticed that this pattern is repeated a few times. As a follow up diff, should we make shortAbsoluteDate into a hook (maybe like useShortAbsoluteDate) so that we can use useMemo in the hook and simplify this call here and in other places?

This revision is now accepted and ready to land.Sep 7 2023, 9:46 AM

Disregard, pasted flame graph for incorrect render

native/chat/sidebar-item.react.js
19–22 ↗(On Diff #30847)

Yeah I'll jot down that we should look at all shortAbsoluteDate callsites. There's other low-hanging fruit so I'll probably prioritize that first.

This revision was automatically updated to reflect the committed changes.