web-dev-qa-db-fra.com

React natif pour Android fonctionne très lentement lorsqu'il n'est pas activé "Debug JS"

Je développe une application à l’aide de react native, j’utilise une base de code pour ios et Android, la version ios fonctionnant sans à-coups.

Mais la version Android fonctionne très lentement. la chose étrange est: 

Lorsque je secoue le téléphone et que je clique sur «Débogage JS» pour activer la fonction de débogage dans Chrome, le processus est plus rapide, tout le monde a-t-il une idée de la raison?

22
LanceHub

Parfois, une ou plusieurs lignes console.log() actives sont à l'origine de ce problème. Les lignes console.log doivent être recherchées et supprimées si elles existent.

Également en production, babel-plugin-transform-remove-console peut être utilisé pour effacer automatiquement toutes les méthodes console. *.

26
efkan

La raison des différentes vitesses d’exécution du code javascript lorsqu’il s’exécute en mode débogage est que lorsque vous êtes en mode débogage, afin d’activer l’expérience de débogage, React Native exécute le code dans le navigateur Chrome de votre ordinateur et les résultats de l'exécution est pontée sur le périphérique. 

En dehors du mode débogage, le code est exécuté dans le moteur JavaScriptCore sur le périphérique lui-même.

Cela dit, je ne peux pas expliquer pourquoi l'exécution est si lente sur le périphérique. Vous utilisez peut-être un périphérique de faible puissance ou un émulateur avec une mémoire allouée limitée?

10
jevakallio

Réagir application native fonctionne plus lentement sur Android. Mais la performance n’est pas réelle lors de votre développement. Vous pouvez créer une version pour vérifier les performances réelles. La version est beaucoup plus rapide que la version dev.

Certains mauvais codes peuvent également ralentir votre application. Comme console.log(), l'application ralentit pendant le développement. Évitez les rendus inutiles, n'utilisez pas la fonction de flèche et .bind dans render, etc.

5
Swordsman

Je sais que c'est un sujet ancien, mais le même problème. J'ai appliqué les solutions ci-dessus, mais le problème persistait. Plus tard, j'ai découvert ce problème causé par un périphérique de stockage USB émulé plutôt que monté sur un disque USB. En effet, lorsque vous téléchargez un fichier Apk signé et que vous installez l’application à partir de ce fichier, cela pose des problèmes et génère des erreurs d’écriture, par exemple. caché mais ne donne pas beaucoup de messages d'erreur. J'espère que passer d'un périphérique de stockage émulé à un disque insignifiant aide ceux qui souffrent du même problème que moi.

0
Engin Yilmaz

J'ai le même problème sur le périphérique IOS (ipad4, ios10). Je n'utilise pas redux-logger et j'ai supprimé tous les fichiers console.log, mais je ne sais toujours pas ce qui rend l'application si lente. Il faut 2 secondes pour alterner entre les onglets. 

"react-native": "0.41.2",
"réagir": "15.4.2",
"native-base": "^ 2.0.10", 

0
daniel