samedi 4 février 2012

C + + et de performance

Voici un blog intéressant sur l'utilisation ObjC + + pour améliorer les performances dans les applications iPhone. J'ai peut-être dans une minorité à ce sujet, mais je n'ai jamais été un grand fan de l'Objective-C + +. Pourquoi vous chevauchent les limites de deux langues?

D'accord, c'est une simplification excessive, il ya des moments où l'Objective-C + + est un excellent choix, surtout quand vous écrivez la version Mac ou un iPhone d'une application qui s'exécute sur des plateformes multiples. Il ne serait pas cependant être la première option qui bondit sur mon esprit comme un outil pour l'optimisation d'une application iPhone peu performants. Bien que C + + ne certaines choses, comme un message de répartition, plus rapide (enfin, techniquement, c'est un "lookup vtable" sur C + +, pas un envoi de message), il encourt encore quelques généraux pour les choses ainsi, il me semble, aucune optimisation en C + + va laisser une certaine marge d'amélioration. N'importe quelle manière vous le coupez, cependant, il ya certainement quelque chose de vraiment précieux dans ce blogue en termes de codage iPhone et de performance, alors allez le lire.

Je suis dans le milieu de ré-écriture du code de dessin pour mon moteur de particules pour être plus rapide et je suis face à certains des mêmes problèmes de cette entretiens blog sur, cependant, j'ai choisi un peu différent, option plus vieille école de mes optimisations : statique inline fonctions C et des structures pour les trucs vraiment sensibles au temps, et droites Objective-C pour tout ce qui n'est pas sensible au temps. Bien sûr, il peut être une douleur à déboguer, mais je ne déplacer le code dans une fonction inline statique après que j'ai eu il fonctionne dans un mode régulier ou la fonction première. J'utilise les structs pour éviter la surcharge de création d'objets sur des choses comme les particules, qui, il y aura beaucoup d'.

Jusqu'ici, il semble être un bon choix - j'ai eu une 2000 particules par seconde avec un générateur de 12 secondes la durée de vie des particules en utilisant le rendu GL_POINT tourne à 20 images par seconde sur un iPhone de première génération, sans beaucoup plus sensible à sauter, qui est une énorme amélioration sur ma première version, qui ignorées, même avec quelques centaines de particules par seconde. J'espère que je vois des améliorations similaires dans d'autres types de rendu quand j'ai fini d'écrire ces ré-.

Aucun commentaire: