CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[ C / C++ ] rapidité des boucles 'for'

Pixcoder
Pixcoder
Niveau 4
21 février 2006 à 23:58:40

Bonjour!

J´ai une question à propos des boucles for :
Entre
"
for(int i=0; i<N; i++)
{
instruction 1;
instruction 2;
}
"

et
"
for(int i=0; i<N; i++)
instruction 1;

for(int i=0; i<N; i++)
instruction 2;
"

Quelle est la version la plus rapide?
Je me demande s´il y a une différence.

PiXNeodyme
http://rom3fr.free.fr

[LoCkLeSs]
[LoCkLeSs]
Niveau 10
22 février 2006 à 00:01:00

Ben euh je vois pas l´interet, parce que déja tes deux boucles auront des effets différents dans certains cas.

Pixcoder
Pixcoder
Niveau 4
22 février 2006 à 00:05:17

sachant que les instruction 1 et 2 ne dépendent pas de l´indice de manière importante.

LGV
LGV
Niveau 28
22 février 2006 à 00:44:47

ce depend bcp de ce que tu fais dans instruction1 et 2 ..

si tu fais 2 parcours pour un truc debile/trivial, c´est une perte de temps, c´est sur ; si par contre au premier passage tu en profites pour cacher des resultats qui peuvent accelerrer le traitement du second passage, c´est autre chose.

bref, variable.

LGV
LGV
Niveau 28
22 février 2006 à 00:46:27

"instruction 1 et 2 ne dépendent pas de l´indice"

je pressents comme un truc super mal foutu qqpart... l´art de faire des boucles sur un invariant o_O

v_dev
v_dev
Niveau 5
23 février 2006 à 20:49:23

La premiere est n fois plus rapide etant donné que dans ta deuxième tu vas traiter n fois ta boucle c´est à dire n*n ta deuxième instruction... après cela dépend du programme ^^

kufa
kufa
Niveau 9
23 février 2006 à 21:28:38

v_dev: meme pas drole ton troll

dnob700
dnob700
Niveau 10
23 février 2006 à 21:45:46

non, je crois qu´il a pensé que la deuxième méthode était une boucle dans la boucle. Il a pas du faire gaffe, mais je suis pas sur que ce soit un troll.

Altonfrere
Altonfrere
Niveau 10
24 février 2006 à 10:55:25

peut être HS ca c´est pas vraiment à propos des for mais ca peut toujour servir à certains :

http://iridia.ulb.ac.be/~fvandenb/miniSSEL1BLAS/d-loop.pdf

-> un petit essai sur les optimisations de boucles appelé D-Loop, intéressant, à lire.

v_dev
v_dev
Niveau 5
24 février 2006 à 12:48:55

Oups !! !!
désolé j´avais mal compris !
Ahlala y a des fois je suis tete en l´air moi !

Toujours est-il que dans le premier cas on ne fait qu´un seul parcourt, contre 2 dans le deuxième, alors que c´est exactement la même boucle (valeurs de i).

Encore désolé !

kufa
kufa
Niveau 9
24 février 2006 à 13:25:50

dnoob: je sais que ce n etait pas un troll, c etait juste une facon de dire "tu as mal lu/compris" ;)

Pixcoder
Pixcoder
Niveau 4
25 février 2006 à 20:33:09

hum, merci pour le troll.

Oui, c´était une question un peu idiote au premier abord mais pas tant que ça...

J´ai effectué quelques tests pour appréhender la chose, les différences sont parfois assez grandes, mais tout dépend des instructions...

Donc, je suis désolé de vous avoir fait perdre un peu de votre temps, on ne peut tirer aucune conclusion...

Bye
PiXNeodyme

dnob700
dnob700
Niveau 10
26 février 2006 à 00:13:00

"Donc, je suis désolé de vous avoir fait perdre un peu de votre temps, on ne peut tirer aucune conclusion... "

si on répond c´est qu´on ne considère pas que c´est uen "perte de temps". De toute manière, ta question était loin d´être stupide.

kufa
kufa
Niveau 9
26 février 2006 à 20:31:47

Tu nous as pas fait perdre du temps, loin de la.
Il n´y a pas de questions bete, ou qui fait perdre du temps (hors les questions HS ou celles qu un simple google/forum search permet de resoudre), et les rapidites des boucles for et qqchose de tres interessant. (on peut discuter des heures sur comment les optimiser, les remplacer par autre chose, etc)

Sinon je tiens a m expliquer sur mon post qui apparement n a pas ete bien compris: lorsque je disais "meme pas drole ton troll" c´etait par rapport au post de v_dev qui avait mal lu le post original, donc j ai fait un peu d humour noir qui n a ete visiblement pas bien interprete..

[Trunks-After]
[Trunks-After]
Niveau 10
27 février 2006 à 12:09:37

Pourquoi dans sa boucle il met un ´int´?? On a le droit? Si oui, sa sert à quedalle, sinon t´es nul :D XD

LGV
LGV
Niveau 28
27 février 2006 à 14:38:36

trunks : .. aah.. *CA* c´est un vrain troll, non ? ..

dnob700
dnob700
Niveau 10
27 février 2006 à 22:17:58

non, je pense juste que la dernière proposition du message peut s´appliquer à son auteur...

Le int dans la boucle sers tout simplement à déclarer la variables i pour qu´elle soit "locale" à la boucle.

kufa
kufa
Niveau 9
28 février 2006 à 01:51:15

Je pense que LGV faisait reference au passage "Si oui, sa sert à quedalle, sinon t´es nul :D XD"
1) c´est possible, et ca ne sers pas a quedalle
2) si c´est pas possible, je ne vois pas pourquoi il serait nul
3) poser une question comme celle-ci est suggerer que c´est inutile/que l´on est stupide releve vraiment du troll.

MrGoTo
MrGoTo
Niveau 8
01 mars 2006 à 05:53:42

Là une question, dans le cas ou l´on aurait la seconde version, est-ce que le compilo va pas optimiser pour avoir la première ?

dnob700
dnob700
Niveau 10
01 mars 2006 à 19:00:59

je viens d´essayer sur des cas très simple avec VC++ 2005 et il ne l´a pas fait. Ca ne veut pas dire qu´il ne le fait jamais, mais, ça me semblerait étonnant quand même.

Surtout quand la boucle appelle d´autre fonction, car vérifier qu´il n´y a pas d´efet de bord doit être assez difficile. et comme l´ordre d´exécution des instruction n´est plus le même il faudrait quand même garentir qu´on obtient bien la même chose.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment