J'utilise une application opengl es iphone. Quelle est la manière la plus précise de calculer les images par seconde de mon application pour l'optimisation des performances?Calculer fps (images par seconde) pour l'application iPhone
Répondre
Essayez de lancer:
Run -> Run With Performance Tool -> OpenGL ES
.
vous devez exécuter cet outil lorsqu'il est connecté à l'appareil (que vous voudriez évidemment de toute façon pour le réglage des performances ...)
Il vous donne Core Animation FPS qui peut (probablement) pas ce que vous Vous cherchez, mais il peut représenter un certain nombre d'autres statistiques utiles pour vous, ce qui peut également vous aider à optimiser.
Trouver quelque chose comme un temporisateur haute résolution (plus de 1000 ticks/secondes), et mesurer le temps entre le début du rendu et son affichage à l'écran.
Diviser les tiques par seconde au moment où vous mesurée juste, et vous avez le FPS.
filets.Vérifier this out. Il y a des liens très utiles à ce sujet. Bonne chance!
Lorsque vous atteignez la fin de votre code de dessin, augmenter un compteur.
Configuration d'un incendie NSTimer chaque seconde, afficher le compteur, et le remettre à zéro.
La mesure de FPS pendant le développement est presque insignifiante. Mesurez le temps de rendu dont vous avez besoin!
De cette façon, vous aurez une bien meilleure compréhension de la façon dont vos modifications affectent les performances. Habituellement, c'est une très bonne idée de diviser votre temps de rendu en tranches significatives, par ex. "rendu arrière-plan", "rendu niveau", "rendu mobs", etc.
Si vous voulez toujours faire des FPS, mon préféré est la version de Johns NSTimer, même si elle ne montre pas de pics.
je suppose que ce que vous voulez est la suivante:
// fps calculation
static int m_nFps; // current FPS
static CFTimeInterval lastFrameStartTime;
static int m_nAverageFps; // the average FPS over 15 frames
static int m_nAverageFpsCounter;
static int m_nAverageFpsSum;
static UInt8* m_pRGBimage;
static void calcFps()
{
CFTimeInterval thisFrameStartTime = CFAbsoluteTimeGetCurrent();
float deltaTimeInSeconds = thisFrameStartTime - lastFrameStartTime;
m_nFps = (deltaTimeInSeconds == 0) ? 0: 1/(deltaTimeInSeconds);
m_nAverageFpsCounter++;
m_nAverageFpsSum+=m_nFps;
if (m_nAverageFpsCounter >= 15) // calculate average FPS over 15 frames
{
m_nAverageFps = m_nAverageFpsSum/m_nAverageFpsCounter;
m_nAverageFpsCounter = 0;
m_nAverageFpsSum = 0;
}
lastFrameStartTime = thisFrameStartTime;
}
Cordialement, Asaf Pinhassi.
+1 pour 'CFAbsoluteTimeGetCurrent()'. En utilisant NSTimer, j'ai trouvé que ça tournait aussi vite que la boucle d'exécution, donc l'utilisation du temps absolu signifie que je sais combien d'images par seconde je reçois vraiment. – jowie
- 1. Calculer FPS dans le jeu opengl pour iphone (EAGLView)
- 2. Taux de trame par seconde (FPS) commence à gdecrease dans Coco2d jeu iPhone?
- 3. iPhone Test OpenGL fps
- 4. iPhone + OpenGL + Touches: FPS drop
- 5. Calcul d'images par seconde dans un jeu
- 6. Obtenir des requêtes basses par seconde (8-15 par seconde)
- 7. XNA pour rendre la vidéo 3D (fixe FPS!)
- 8. Effet timelapse Javascript: afficher 30 images/seconde (lire pour plus de détails)
- 9. iphone - Images (diaporama) et synchronisation audio
- 10. Développement de jeu: Comment limiter les FPS?
- 11. comment obtenir le maximum de fps dans l'ipad?
- 12. Comment calculer le SHA1 iphone
- 13. Augmentation du nombre d'images par seconde avec flash?
- 14. Animation en plein écran iPad (1024x768) avec un problème d'environ 1800 images. Faible FPS
- 15. CoreData (pour iPhone) stockant des images
- 16. android comment calculer les battements par minute
- 17. Comment écrire un PerformanceCounter "événements par seconde"?
- 18. Images iPhone app
- 19. Comment profiler les méthodes C# par seconde?
- 20. Expression régulière: Commencer par la seconde
- 21. Amazon SDB - PUTS par seconde limite expliquée?
- 22. GAE: Combien de tâches par seconde est suffisant?
- 23. UIScrollView images cliquables iPhone
- 24. iPhone: la mémoire utilisée par les images n'est pas libérée
- 25. Dans iPhone, comment calculer le temps passé?
- 26. Barre de navigation iPhone Images
- 27. Comment réduire seconde par seconde la durée totale de C# asp.net?
- 28. iphone - calculer la taille de la police
- 29. Comment calculer l'âge par datetimepicker
- 30. Comment puis-je calculer la différence entre deux images
Je suis en mesure de voir FPS sur mon ancien iPod touch en cours d'exécution 2.2.1 mais pas mon nouvel iPhone 3gs en cours d'exécution 3.1. – Mel
Essayez de lancer Instruments en mode autonome, et attachez-le à votre processus en cours d'exécution - cela vous permet d'ajouter l'outil que vous voulez, où XCode devient parfois confus au sujet des outils que vous êtes autorisé à exécuter. –