2011-03-04 2 views
2

Je suis la mise en œuvre d'une application pour un service de microblog, quelque chose de similaire à Twitter. J'ai fait tout ce que je sais pour améliorer la performance, y compris en utilisant drawRect au lieu de l'architecture sous vue. Après avoir exécuté l'application avec Instrument, j'ai trouvé que [NSString drawInRect:withFont] prend plus de 50% de temps, surtout lors du premier défilement, après quoi je peux défiler assez facilement. Bien que [NSString drawInRect:withFont] prenne encore le plus de temps, il est nettement plus lisse, et aucun retard évident ne peut être remarqué.Comment améliorer les performances de [NSString drawInRect: withFont]?

Je ne sais pas si les couches sont en cache ou quelque chose, mais avec le point de rupture et NSLog je peux voir que drawRect et drawInRect sont encore appelés. Alors pourquoi il ne fait que retarder la première fois de défilement?

L'application officielle de Twitter a vraiment d'excellentes performances. Y at-il un initié qui peut me dire quelques trucs pratiques?

Répondre

0

En fait, Loren Bricher, le développeur derrière l'application Twitter a écrit un billet de blog à ce sujet.

Vous pouvez le vérifier ici: http://blog.atebits.com/2008/12/fast-scrolling-in-tweetie-with-uitableview

(Tweetie est le nom de l'application officielle Twitter avant qu'elle ne soit rachetée par Twitter, au cas où vous ne saviez pas.)

+0

Merci pour le partage. En fait, c'est celui que je copie. C'est vraiment un article utile. J'ai beaucoup amélioré la performance. Cependant, comme je l'ai mentionné ci-dessus, le défilement de la première fois est encore un peu lent alors qu'il n'y a pas de retard pendant la deuxième fois et plus tard. J'ai remarqué la différence de performance entre drawAtPoint et drawInRect. Puisque la démo d'atebits ne montre qu'une ligne de texte, je ne sais pas comment le gars traite le paragraphe pour obtenir cette performance. –

Questions connexes