Vitesse de programme

Signaler
Messages postés
49
Date d'inscription
samedi 2 avril 2005
Statut
Membre
Dernière intervention
3 décembre 2008
-
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
bonjour
j'ai A,B,C qui sont des boucles quelconques.
parmi ces 2 cas ci-dessous, quel est l'algorithmes le plus rapide?
cas 1)

for (i = 0; i < N; i++)

{

      A;

      B;

      C;

}

 

cas 2)

for (i = 0; i < N; i++)

{

      A;

}

for (i = 0; i < N; i++)

{

      B;

}

for (i = 0; i < N; i++)

{

      C;

}

ouais man

5 réponses

Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
1
bon tt d'abord ces 2 possibilitées ne sont pas equivalentes et ensuit
il n'y a pas de grande difference. dans le deuxiem cas il y a 2*N
additions en plus mais c'est negligeable.

<hr size="2" width="100%" />Trafic web gratuit!!!
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008

La 1 est plus rapide car tu économises 2N incrémentations et 2N branchements avec conditions par rapport à la 2.
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
Salut,

Ca dépend aussi car si A peut être exécuté avec toute la mémoire dans le cache puis pareil pour B et pareil pour C ça ira plus vite que si A, B et C demandent trop de mémoire et que ça tient pas dans le cache et qu'il faut à chaque fois recharger tout.

@++

Une autruche ne se cuit pas aux petits lardons.
Messages postés
573
Date d'inscription
samedi 16 novembre 2002
Statut
Membre
Dernière intervention
9 avril 2008

Exact, donc dans ce cas,

for (i = 0; i < N; i++)
{
      { A; }
      { B; }
      { C; }
}

est le plus rapide.
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
20
Tant que faire se peut, c'est la boucle tendant vers 0 qui est la plus rapide.

ciao...
BruNews, MVP VC++