React Native 列表滚动时脚本线程空闲但界面仍掉帧应如何归因
简答题困难485 次浏览
参考答案与解析
# 核心结论
React Native列表滚动时脚本线程空闲,只能排除“当前时段由脚本线程持续计算造成阻塞”这一种可能,不能说明整个渲染链路没有瓶颈。掉帧仍可能发生在原生主线程的视图创建、绑定与布局,渲染线程的绘制和合成,图片解码与纹理上传,内存分配和垃圾回收,以及列表窗口填充不足等环节。正确归因方法是把一帧拆为数据准备、组件计算、提交、原生布局、绘制、合成和实际呈现,并在同一时间轴上确定哪一阶段错过了帧截止时间。
# 底层机制
跨端列表需要维护可见窗口,计算哪些项目进入或离开视口,并创建、复用、测量和绑定对应单元。脚本侧完成组件计算后,相关提交仍可能在原生侧形成一批工作;因此采样时看到脚本线程空闲,可能只是脚本已
