lynx-family/lynx

[Performance]: Jank Frame between list scrolling

Open

#194 opened on Mar 7, 2025

View on GitHub
 (2 comments) (0 reactions) (2 assignees)C++ (14,882 stars) (527 forks)user submission
help wanted

Description

System Info

Plaform: Android (not sure whether iOS has the same issue)

Details

I made a list scrolling case (simplify from https://github.com/facebook/react-native/blob/main/packages/rn-tester/js/examples/FlatList/FlatList-multiColumn.js) to compare with react native but found more jank frame in the profile.

I am not sure the root case but it looks like View#onTouchEvent, animation slice is longer than expected or react-native

Reproduce link

https://github.com/ArrayZoneYour/lynx-tester

Reproduce Steps

  1. Use client repo from https://github.com/ArrayZoneYour/integrating-lynx-demo-projects and modify the url to 204.lynx.bundle or recompile project from lynx-tester above.

  2. Trace the application

./record_android_trace -o trace_file.perfetto-trace -t 300s -b 640mb \
sched freq idle am wm gfx view binder_driver hal dalvik camera input res memory -a com.lynx.kotlinemptyproject
  1. Then scroll from top to end. Ctrl + C to Get the trace.

Contributor guide