admin管理员组

文章数量:1656660

目录

  • 背景
  • 解决

背景

最近在做一个学校的项目,用 Expo 开发一个 React Native 的项目。今天尝试加一个物体坠落的动效,发现慢的出奇!根本没法用啊。

花了半天时间,尝试排查各种原因,无果。一开始以为是我写的代码的问题,后来把能解决的都解决了,甚至完全换上别人写好的、一定没问题的代码,居然还是一样慢!

最后想到,是不是因为一直开着远程调试?这还是做上一个项目的时候开的,但因为所有项目都是从同一个手机上的 Expo 应用中打开的,所以 Expo 仍然保留了远程调试开启的状态。

解决

尝试关掉了 Expo 的远程调试功能之后,动效居然真的立刻变得顺畅了!

后来想想也不难理解:为了保证手机上的全部 console.log 都在电脑端实时显示,应用一定在不断发送网络请求,而处理这些请求的逻辑和所有 UI 逻辑都是在同一个线程中的(毕竟 JS 只有一个线程),这样势必会造成对正常逻辑的极大干扰,因为每隔一小段时间 JS 线程就需要切换到处理网络请求的逻辑上。

下回一定要记得,在不用的时候把远程调试功能关上了!

本文标签: 太慢项目ReactNativeExpo