Skip to content

[$1000] [Performance] Pressing the FAB on the start screen doesn't open the menu immediately #12119

Description

@hannojg

What performance issue do we need to solve?

When pressing the FAB on the start screen there is a noticeable delay until the menu opens. It gets more noticeable the weaker the device is.

See this video:

before.mp4

What is the impact of this on end-users?

Frustration. The action that follows an interaction shouldn't take any longer than 100 to max 200ms. Otherwise, the user will notice the wait time and gets a poor sense of quality.

List any benchmarks that show the severity of the issue

  • Time from interaction to action: ~2 seconds (From the video above)
  • Worst UI Thread FPS: 55.7
  • Worst JS Thread FPS: 0
  • Time the JS thread froze: ~ 1 seconds

Proposed solution (if any)

In general, we want to avoid doing unnecessary work like rerendering components that don't have to.

List any benchmarks after implementing the changes to show impacts of the proposed solution (if any)

Note: These should be the same as the benchmarks collected before any changes.

after.mp4

The feedback comes immediately after pressing the FAB. And as there is no frozen JS thread we also can see the animation of the FAB.

  • Time from interaction to action: 0 s (there is probably some, but it's not "eye measurable")
  • Worst UI Thread FPS: 56.2
  • Worst JS Thread FPS: 46.5
  • Time the JS thread froze: 0 ms

Screenshot 2022-10-28 at 15 58 36

Screenshot 2022-10-28 at 15 58 43

(You can see that the JS thread is very less busy, which is a good improvement!)

Platform:

Where is this issue occurring?

  • Web
  • iOS
  • Android
  • Desktop App
  • Mobile Web

Version Number: 1.2.19-1
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
Expensify/Expensify Issue URL:

View all open jobs on Upwork

Upwork Automation - Do Not Edit

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2EngineeringImprovementItem broken or needs improvement.ReviewingHas a PR in review

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions