Ayant fini mes études en informatique, je me suis lancé dans un projet de jeu-vidéo en 2D en Java avec mon cousin.
Pas trop d'informations pour l'instant, classé confidentiel.
Bref, grâce à l'IUT j'ai appris beaucoup de choses, et notamment en algorithme, un truc que j'adore. Cependant, même si j'arrive plutôt bien à coder de façon optimiser, j'ai quelques questions en tête.
--------------------------------------------------------------------------------------------------------------------------------
Les boucles
Déjà là je suis sur un traitement de tableaux, et j'utilise des boucles for.
Et je me suis rendu compte que finalement, lorsque j'ai un résultat je pourrais arrêter l'une de ses boucles en plein milieu.
Pourquoi est-ce mal d'utiliser l'instruction break dans une boucle for ?
Je pensais qu'il y avait une raison au niveau de la mémoire, mais en regardant vite-fait sur Internet, apparemment il s'agit simplement d'une question de lisibilité de code.
Or dans mon cas, je trouve ça beaucoup plus lisible d'utiliser un simple break plutôt que d'avoir des conditions à rallonge dans les instructions de boucles.
--------------------------------------------------------------------------------------------------------------------------------
Le parcours d'un tableau
- Code: Tout sélectionner
for (int i=0 ; i<tableau.length) ; i++) {}
- Code: Tout sélectionner
int taille = tableau.length ;
for (int i=0 ; i<taille) ; i++) {}
- Code: Tout sélectionner
short taille = (short) tableau.length ;
for (short i=0 ; i<taille) ; i++) {}
Lequel est le plus performant entre ces trois là ? Est-il vrai que pour le premier cas, à chaque itération il va calculer la taille du tableau ? Et pour un tableau de petite taille fixe, est-il préférable d'utiliser un short plutôt qu'un int ?
Cela paraît un peu trop infime, mais j'ai besoin de faire beaucoup de calculs par seconde, et même les nanosecondes comptent ! Non je plaisante, mais j'aime être le plus performant possible.
--------------------------------------------------------------------------------------------------------------------------------
Les variables et variables de classes
- Code: Tout sélectionner
class A { int poids = 8 ; int getPoids(){ return this.poids } }
class B { ...{ for (int i=0 i<a.getPoids() ; i++) {} } }
- Code: Tout sélectionner
class A { int poids = 8 ; int getPoids(){ return this.poids } }
class B { ...{ int p = a.getPoids() ; for (int i=0 i<p ; i++) {} } }
Y a-t-il une différence de temps d'accès à la valeur 8 ? Bon dans cet exemple c'est inutile, mais si dans une quadruple boucle, toute de taille en milliers, on calcul via la même valeur d'une variable de classe - mieux vaut la stocker dans un variable hors des boucles ou le temps d'accès à la méthode get() est de toute façon quasiment nulle ? (Si cela dépasse 0,2ms, j'utiliserais la seconde méthode en exemple. )
--------------------------------------------------------------------------------------------------------------------------------
Voilà voilà, pour l'instant c'est tout ce qui me trotte dans la tête. Bon là c'est du Java, mais bien sûr je pose la question pour tous les langages.
Merci d'avance pour vos réponses !