Quel est le plus rapide je peux courir un NSTimer et toujours obtenir des résultats fiables? J'ai lu que près de 30 ms ça commence à devenir inutile, alors où ça "commence à devenir inutile" ... 40ms? 50ms? Dépend du type de résultat que vous essayez d'obtenir.Quel est le plus rapide je devrais courir un NSTimer?
Répondre
Say the docs:
la résolution efficace du temps intervalle pour une minuterie est limitée à sur l'ordre de 50-100 millisecondes
Sonne comme si vous voulez soyez prudent, vous ne devriez pas utiliser les minuteurs en dessous de 0,1 sec. Mais pourquoi ne pas essayer dans votre propre application et voir à quel point vous pouvez aller bas?
Vous ne trouverez aucune garantie à ce sujet. Les NSTimers sont opportunistes par nature puisqu'ils s'exécutent avec la boucle d'événements, et leur granularité la plus efficace dépendra de tout ce qui se passe dans votre application en plus des limites de tous les mécanismes de répartition de la minuterie Cocoa.
Merci pour ça. Y at-il une méthode recommandée pour aller plus vite que cela, en dehors de l'écriture de mon propre en utilisant GCD? –
@DanRosenstark (6 ans plus tard ...) Cela dépend de ce que vous en avez besoin. 'CADisplayLink' semble être à 60 secondes de la fin, avec quelques restrictions sur le timing de l'affichage, puisque c'est pour ça. Si vous avez besoin de quelque chose de garanti en temps réel, ou super précis, vous devriez poser une nouvelle question sur la meilleure approche. Bonne chance! –
NSTimer Class
0.5 - 1.0
est un bon point de départ pour des résultats fiables.
Quelle est votre définition de fiable? Une erreur de 16 ms dans une temporisation de 1 seconde est inférieure à 2% d'erreur, mais dans une temporisation de 30 ms, elle est supérieure à 50% d'erreur. NSTimers attendra que tout ce qui se passe dans la boucle d'exécution en cours se termine et toutes les erreurs de temps peuvent s'accumuler. par exemple. Si vous touchez l'écran N fois, toutes les tirs NSTimer répétés suivants peuvent être en retard par le temps cumulé pris par les manipulateurs tactiles 0 à N (plus tout ce qui a fonctionné à la "mauvaise" heure). etc.
Les temporisateurs CADisplayLink tenteront de quantifier le temps à la fréquence d'images, en supposant qu'aucun ensemble de tâches de premier plan ne dure aussi longtemps qu'un temps de trame.
- 1. sur quel os devrais-je essayer le vs2010 beta1? quel émulateur est plus rapide?
- 2. Quel est le parser XML le plus rapide en PHP?
- 3. Quel est le comptage le plus rapide, horizontal ou vertical?
- 4. Quel est le sérialiseur le plus rapide de Java?
- 5. Quel est le plus rapide à transmettre: XML ou DataTables?
- 6. Quel est le plus rapide, XPath ou Regexp?
- 7. Quel format d'image est le plus rapide pour BlackBerry?
- 8. Quel est le plus rapide - WebSockets ou Ajax?
- 9. C# - Quel est le plus rapide: String.Contains() ou Regex.isMatch()?
- 10. Est-ce vrai? quel CPU le plus rapide ou I
- 11. NSMutableArray. Quel est le moyen le plus rapide pour le convertir en un tableau C simple?
- 12. Quel composant devrais-je utiliser?
- 13. De quel type devrais-je me servir?
- 14. Je devrais pouvoir retarder 2 secondes using NSTimer. Comment faire?
- 15. Quel est le moyen le plus rapide d'apprendre l'objectif-c pour un développeur expérimenté en PHP?
- 16. Dans jQuery, quel est le moyen le plus rapide de sélectionner un groupe d'éléments?
- 17. Quel est le moyen le plus rapide de trouver un fichier dans Zend Studio pour Eclipse?
- 18. Quel est le moyen le plus rapide d'obtenir un DataTable dans SQL Server?
- 19. Quel est le moyen le plus rapide de déconstruire un message binaire/alpha de longueur fixe?
- 20. Quel est le moyen le plus rapide pour supprimer un grand dossier dans Windows?
- 21. Quel est le moyen le plus rapide d'initialiser un tableau d'entiers en python?
- 22. Quel est le moyen le plus rapide pour combiner deux fichiers xml en un
- 23. Quel est le moyen le plus rapide de remplir un tableau avec des nombres en PHP?
- 24. Quel est le moyen/script le plus rapide de dupliquer un projet de studio visuel?
- 25. Quel est le moyen le plus rapide d'utiliser lsof pour trouver un seul fichier ouvert?
- 26. Quel est le moyen le plus rapide de valider un code postal existant sur l'iPhone?
- 27. Quel est le moyen le plus rapide de générer un ensemble unique en .net 2
- 28. Quel est le moyen le plus rapide de convertir un type d'objet?
- 29. Quel est le moyen le plus rapide de détecter un hôte inaccessible en Java?
- 30. Quel est le moyen le plus rapide pour télécharger un énorme ensemble de données à appengine?
Les minuteries à répétition et à fonctionnement rapide doivent être évitées; ils ont tendance à consommer de la pâte et à laisser votre demande sans réponse. – bbum
duplication possible de [Utilisation d'un NSTimer à haute fréquence?] (Http://stackoverflow.com/questions/4289588/using-an-nstimer-at-high-frequencys) –
@bbum "exécution rapide, répétition des temporisateurs à éviter "... faites-vous référence à des instances de NSTimer, ou à un problème de conception? Aussi, existe-t-il une alternative plus rapide à NSTimer? Je dois aller plus vite que le CADisplayLink 60fps pour sortir du MIDI. –