我正在使用 react native 开发一个应用程序,我使用了一些用于 ios 和 android 的代码库,ios 版本运行流畅。
但是安卓版运行很慢。奇怪的是:
当我摇晃手机,然后单击“Debug JS”以启用 chrome 功能中的调试时,它运行得更快,有人知道原因吗?
我正在使用 react native 开发一个应用程序,我使用了一些用于 ios 和 android 的代码库,ios 版本运行流畅。
但是安卓版运行很慢。奇怪的是:
当我摇晃手机,然后单击“Debug JS”以启用 chrome 功能中的调试时,它运行得更快,有人知道原因吗?
有时,一条或多条活动console.log()
线路会导致此问题。
console.log
应搜索并删除行(如果存在)。
同样在生产中,babel-plugin-transform-remove-console可用于自动清除所有 console.* 方法。
javascript代码在debug模式和非debug模式下执行速度不同的原因是,当你在debug模式下,为了获得调试体验,React Native会在你电脑的Chrome浏览器中执行代码,结果执行被桥接到设备上。
在调试模式之外,代码在设备本身的 JavaScriptCore 引擎中执行。
也就是说,我无法解释为什么设备上的执行速度如此之慢。您可能是在低功耗设备上运行,还是在分配内存有限的模拟器上运行?
React Native 应用程序在 Android 上运行速度较慢。但是在您的开发过程中性能不是真实的。您可以构建一个发布版本来检查实际性能,发布版本比开发版本快得多。
还有一些不好的代码会使您的应用程序变慢。就像console.log()
,它在开发过程中确实会减慢应用程序的速度。避免不必要的重新渲染视图,不要使用箭头函数和.bind
inrender
等。
我在 IOS 设备(ipad4、ios10)上也有同样的问题。我不使用 redux-logger 并删除了所有 console.log,仍然不知道是什么使应用程序如此缓慢。在选项卡之间切换需要 2 秒。
"react-native": "0.41.2",
"react": "15.4.2",
"native-base": "^2.0.10",