URL: https://linuxfr.org/forums/programmationautre/posts/optimisation-de-tests-dans-des-boucles Title: Optimisation de tests dans des boucles Authors: jyes Date: 2011年06月21日T22:23:55+02:00 Tags: fortran Score: 2 Je travaille actuellement sur un code qui contient de nombreux tests à l’intérieur de boucles. Théoriquement, la plupart de ces tests peuvent être sortis des boucles puisque la valeur testée ne change pas en fonction des indices de boucle. Cependant, comme il y a plusieurs boucles imbriquées et plusieurs tests, extraire les tests des boucles revient à ajouter beaucoup de lignes code et diminue la lisibilité du code. Mon problème est que j’ai vraiment besoin de performances avec ce code. Je ne suis pas développeur de formation et je ne parviens pas à trouver de réponse satisfaisante par des recherches sur Internet. Ma question est donc la suivante : Dans un cas comme celui-ci : for i1 = 1,maxi1 for i2 = 1,maxi2 for [...] for in = 1,maxin instructions_generales(); select case(variable_exterieure_a_la_boucle) case (0) instructions_zero(i1, i2, ..., in); case (1) instructions_un(i1, i2, ..., in); [...] case (m) instructions_m(i1, i2, ..., in); end [...] end end end le compilateur est-il capable d’extraire les tests des boucles tout seul pour optimiser le code, ou vaut-il mieux optimiser à la main. Je préférerais nettement laisser ce travail au compilateur, mais les performances sont ici plus importantes que la lisibilité du code. Pour info, j’utilise GCC (avec gfortran au cas ou ce serait dépendant du langage). Merci beaucoup de votre aide, et bonne journée !

AltStyle によって変換されたページ (->オリジナル) /