react-native - 性能监视器反应原生
问题描述
我注意到性能监视器中的“到目前为止下降”数字不断增加。它达到了2030fps。
这个数字应该不断增加吗?或者我的应用程序有问题。
解决方案
它通常会随着时间的推移而增加,但您希望该数字尽可能低。基本上每个 javascript 操作都在 16 毫秒的时间间隔内捆绑并发送到主线程,只要 javascript 操作花费的时间超过它被认为是丢帧的时间,因为主线程不必等待下一个 16 毫秒的批处理。每 16 毫秒会导致多丢 1 帧。
例如,假设您有一个包含动画幻灯片的组件,并且做了一些工作componentDidMount
,该工作需要 60 毫秒。这意味着如果您的动画在 javascript 线程上发生,它会卡顿 4 帧(这绝对是可察觉的)。
浏览您的应用并查看哪些渲染会导致应用丢帧,然后检查这些组件的渲染逻辑。您可能应该使用shouldComponentUpdate
甚至更好PureComponent
地防止浪费渲染。
推荐阅读
- javascript - 如何避免 .lower() 重新洗牌 d3 中的元素?
- td-engine - 如何通过文件将数据插入TDengine数据库
- r - plotly::sublot 不显示两个标题
- julia - 我正在尝试使用 GLMakie 编译一个交互式图表示例,但它不起作用。我能做些什么?
- flutter - 我无法在下一个屏幕/路线上访问新创建的提供程序
- mysql - 基于持续时间的开始和结束时间的在线用户数
- firebase - 如果子集合中只有一个文档,给子文档什么ID最好?
- excel - Excel:当B列具有特定值时,从A列填充下拉列表
- python - 如何在 Python 中将线程用于 Selenium 的并行实例?
- r - 为什么 %>% unnest() 在 R 中产生两倍的行数