J'ai écrit une application qui a un certain nombre de vues personnalisées et dessine généralement beaucoup de lignes et de bitmaps. Puisque les performances sont quelque peu critiques pour l'application, j'ai passé beaucoup de temps à optimiser les performances de tirage. Maintenant, le moniteur d'activité m'indique que mon application utilise habituellement environ 12% CPU et Instrument (le profileur) dit qu'un CPU de 10% est dépensé en objc_msgSend
(principalement dans les appels système liés au dessin). D'un côté, je suis content car cela signifie que mon dessin est à peu près aussi rapide que possible et mes optimisations ont été un énorme succès. D'un autre côté, il semble impliquer que la seule chose qui utilise encore mon processeur est le surcoût Objective-C pour les messages (objc_msgSend
). Par conséquent, si j'avais écrit l'application dans Carbon, par exemple, sa performance serait considérablement meilleure. Maintenant, je suis tenté de conclure que Objective-C est un langage avec de mauvaises performances, même si Cocoa semble être terriblement efficace car il peut apparemment dessiner plus vite que Objective-C peut envoyer des messages.Mon programme passe la plupart de son temps dans objc_msgSend. Est-ce que cela signifie que Objective-C a de mauvaises performances?
Alors, Objective-C est-il vraiment un langage avec de mauvaises performances? Qu'est ce que tu penses de ça?
Il n'est pas nécessaire que ce soit un wiki communautaire ... –
Je pense que "10% dans' objc_msgSend' "signifie" 10% du temps passé par le programme ". Si le programme ne dépense que 12% du CPU total, 'objc_msgSend' dépense 1% du temps CPU total. – Yuji