setInterval(()=>null,0) makes any animation much smoother
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 35/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- android, javascript
- Domaine
- mobile-dev, performance
Piste de recherche
Commencez par reproduire le NativeScript Playground lié sur Android avec Profile GPU rendering activé, en comparant l’écran vide, setInterval(..., 0) et les cas Choreographer.postFrameCallback. Tracez ensuite les points d’entrée de la planification du runtime Android pour setInterval et Choreographer ; le travail est terminé lorsque la différence de fréquence d’images est expliquée ou corrigée et que la comparaison est vérifiée sur les appareils signalés.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Environment
- CLI: 6.1.2
- Android Runtime: 6.0.2 / 6.1.2
Describe the bug
I'm working on custom animation (screen blinking at 60fps) on Android, and I was very surprised that using of stupid setInterval(() => {...}, 0) works much better that the native android's Choreographer.
With setInterval(() => {...}, 0) I've got stable 60 FPS even on android 5 devices, but with Choreographer (that should work much efficiency, code below) I got drops to 50 FPS on powerful OnePlus 6 on Android 9.0
android.view.Choreographer.getInstance().postFrameCallback(...);
But if I write down setInterval(() => null); near the Choreographer callback definition - I will achieve stable FPS and low GPU utilisation (LOL, right?).
To Reproduce
I have created app on playground where everybody can test it. Turn on 'Profile GPU rendering' - 'On screen as bars' in 'developer options' menu and launch this simple app with simple loader on 2 pages - one with absolutely empty component, another one with setInterval(() => {}, 0) in OnInit.
Sample project
Nativescript Playground
Additional context
I've recorded animations to demonstrate this behaviour Imgur
And my question on StackOverflow (without any answer) link
- Langage dominant
- C++
- Étoiles
- 563
- Forks
- 144
- Merge moyen
- 10 h 46 min
- PR mergées (30 j)
- 14
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de NativeScript/android
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
NativeScript/android#2039 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
NativeScript/android#2024 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 20/100
NativeScript/android#2020 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 42/100
NativeScript/android#2019 ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 55/100
NativeScript/android#1986 ·
Toutes les issues de NativeScript/android
Issues similaires
-
Website Doc Typo Ouverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 92/100
-
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
autowarefoundation/autoware_universe#13413 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
-
automated-analysis bug memory-safety
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100