2010-10-20 2 views
0

Je possède ce code dans l'un de mes projets (partie d'une boucle):A propos des entiers et la gestion de la mémoire en Objective-C

newPath = [tileMap updatePathFromNode:point1 toNode:point2]; 
int x,y; 
x = [[newPath objectAtIndex:0] nodeX]; 
y = [[newPath objectAtIndex:0] nodeY]; 
currFiend.motionTarget = ccp(x*20,y*20); 

Je cherche maintenant des zones autour de l'ensemble de mon projet pour optimiser le code. Ce que je suis curieux est de savoir si changer le code ci-dessus pour le suivant aura un impact sur les performances que ce soit? Je suis conscient que le changement pourrait être minime, voire négligeable, ce que je veux savoir, c'est si cela fait vraiment la différence de ne pas init et assigner x, y.

newPath = [tileMap updatePathFromNode:point1 toNode:point2]; 
currFiend.motionTarget = ccp([[newPath objectAtIndex:0] nodeX]*20,[[newPath objectAtIndex:0] nodeY]*20); 

Est-ce que cela ferait une différence? Raser les allocations de congé? Enregistrer la mémoire?

Il est plus difficile à lire que le premier extrait, mais dans ces méthodes im après la performance, pas la lisibilité du code.

Répondre

1

Ne vous inquiétez pas - ce serait une micro-optimisation. Le compilateur devrait être assez intelligent pour gérer les cas comme celui-ci. C'est un bon argument en faveur de la lisibilité.

+0

Ça a du sens .. J'ai oublié que les compilateurs sont assez intelligents ces jours-ci. Merci beaucoup d'avoir pris votre temps! –