Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1235 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Page Suivante
Auteur Sujet :

[C/C++] Affectation ou test ? Quel est le mieux ?

n°419423
l'eau de l​a
Posté le 06-06-2003 à 14:22:28  profilanswer
 

Reprise du message précédent :

Code :
  1. for(i=0;i<52;i+=4)
  2.   {
  3.      tmp = *(var[i]);
  4.     if(tmp[0] == 6 || tmp[1] == 6 || tmp[2] == 6 || tmp[3] == 6)
  5.     {
  6.          toto = 6;
  7.       break;
  8.     }
  9.   }


 
Cela doit être le code le plus rapide. :)

mood
Publicité
Posté le 06-06-2003 à 14:22:28  profilanswer
 

n°419450
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 14:36:17  profilanswer
 

L'eau de la a écrit :

Code :
  1. for(i=0;i<52;i+=4)
  2.   {
  3.      tmp = *(var[i]);
  4.     if(tmp[0] == 6 || tmp[1] == 6 || tmp[2] == 6 || tmp[3] == 6)
  5.     {
  6.          toto = 6;
  7.       break;
  8.     }
  9.   }


 
Cela doit être le code le plus rapide. :)


 
non


---------------
Le Tyran
n°419456
Prometheus
Engage !
Posté le 06-06-2003 à 14:42:04  profilanswer
 

L'eau de la a écrit :


     tmp = *(var[i]);
    if(tmp[0] == 6 || tmp[1] == 6 || tmp[2] == 6 || tmp[3] == 6)
 
 


 
arf, porte nawak. C'est plutôt "tmp = var+i" que tu voulais faire,je pense.
 
Et en plus, ça plante puisque tu lis le tableau au delà de 50.
 
Je dis bravo [:xp1700]


---------------
Warp 9.982
n°419461
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-06-2003 à 14:45:55  profilanswer
 

le code le + rapide c'est le mien en assembleur :o
et celui qu'est pas d'accord, [:ban]


---------------
J'ai un string dans l'array (Paris Hilton)
n°419463
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 14:46:49  profilanswer
 

Harkonnen a écrit :

le code le + rapide c'est le mien en assembleur :o
et celui qu'est pas d'accord, [:ban]


 
Heu je suis pas d'acord :D


---------------
Le Tyran
n°419464
l'eau de l​a
Posté le 06-06-2003 à 14:47:06  profilanswer
 

Disons que cela plante "sans doute" :) Il "suffit" d'avoir une taille de tableau multiple de 4, c'est pas sorcier.
 
Vu que c'est un peu plus fin qu'un déroulage de boucle, cela doit bien être plus rapid. Le monsieur qui répond "non"  pourrait-il s'expliquer un peu + ?

n°419469
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 14:49:14  profilanswer
 

L'eau de la a écrit :

Disons que cela plante "sans doute" :) Il "suffit" d'avoir une taille de tableau multiple de 4, c'est pas sorcier.
 
Vu que c'est un peu plus fin qu'un déroulage de boucle, cela doit bien être plus rapid. Le monsieur qui répond "non"  pourrait-il s'expliquer un peu + ?


 
J'ai proposé une soution template quasi imbatable sauf post optimisation du code en nassembleur, et si le compilo se merde pas trop avec les if :D
 

Code :
  1. template<int index> inline void testTableau(int *tableau,int *var,int value) 
  2.   { 
  3.       if(testTableau[index] != value)
  4.       {
  5.            testTableau<--index>(tableau,var); 
  6.       }
  7.       else
  8.       {
  9.           *var = value;
  10.       } 
  11.   }
  12.   void testTableau<0>(int *tableau,int *var,int value) 
  13.   { 
  14.    
  15.   }


Message édité par LetoII le 06-06-2003 à 14:51:53

---------------
Le Tyran
n°419470
l'eau de l​a
Posté le 06-06-2003 à 14:50:18  profilanswer
 

C'est ça il déroule tout.... le ouf...


Message édité par l'eau de la le 06-06-2003 à 14:55:19
n°419474
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 14:52:26  profilanswer
 

L'eau de la a écrit :

Tu as tout fait dérouler  ?


 
Ben ouai, toi tu fais 4 fois moi d'itération moi j'en fais une.
 
Bon y a quand même une petite inconue sur la façon dont le compilo va imbriquer les if mais normalement ça le fait :D


Message édité par LetoII le 06-06-2003 à 14:53:46

---------------
Le Tyran
n°419485
l'eau de l​a
Posté le 06-06-2003 à 14:56:49  profilanswer
 

vu que tu as une suite de :
 

Code :
  1. if (){
  2. if() {}
  3. else {}
  4. }
  5. else{
  6. }


 
Si il est dans un if profond, il va se taper une méga série de jump consécutif.
 

Code :
  1. template<int index> inline bool testTableau(int *tableau,int *var,int value) 
  2.      return (testTableau[index] != value || testTableau<--index>(tableau,var))
  3. }
  4. if (testTableau<50>(int *tableau,int *var,int value))
  5.    *var = value;
  6. }


 
Encore mieux non ?


Message édité par l'eau de la le 06-06-2003 à 15:01:01
mood
Publicité
Posté le 06-06-2003 à 14:56:49  profilanswer
 

n°419492
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 14:59:32  profilanswer
 

L'eau de la a écrit :

vu que tu as une suite de :
 

Code :
  1. if (){
  2. }
  3. else{
  4. }




 
ben après faut vois si en assembleur il déroule les test et ne fait un jump que quand on a un 6 ou s'il va pas arréter de jumper.


---------------
Le Tyran
n°419498
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-06-2003 à 15:03:13  profilanswer
 

laissez moi prendre le temps de vous poster une version MMX-optimised (donc avec 4 additions simultanées) et dont le buffer sera entièrement prefetché en L1, et ça mettra tout le monde d'accord :D


---------------
J'ai un string dans l'array (Paris Hilton)
n°419501
antp
Super Administrateur
Champion des excuses bidons
Posté le 06-06-2003 à 15:03:55  profilanswer
 

Harkonnen a écrit :

le code le + rapide c'est le mien en assembleur :o


 
T'avais pas promis une version MMX ?
 
edit: grilled :o


Message édité par antp le 06-06-2003 à 15:04:21

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°419504
l'eau de l​a
Posté le 06-06-2003 à 15:04:50  profilanswer
 

MMX ET template c++ , je veux voir ça !

n°419505
Prometheus
Engage !
Posté le 06-06-2003 à 15:04:59  profilanswer
 

L'eau de la a écrit :

Disons que cela plante "sans doute" :) Il "suffit" d'avoir une taille de tableau multiple de 4, c'est pas sorcier.
 
Vu que c'est un peu plus fin qu'un déroulage de boucle, cela doit bien être plus rapid. Le monsieur qui répond "non"  pourrait-il s'expliquer un peu + ?


 
"il suffit" ? C'est encore pire que Barbarella qui voulait ajouter un '6' à la fin du tableau :lol:


---------------
Warp 9.982
n°419507
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 15:05:58  profilanswer
 

Harkonnen a écrit :

laissez moi prendre le temps de vous poster une version MMX-optimised (donc avec 4 additions simultanées) et dont le buffer sera entièrement prefetché en L1, et ça mettra tout le monde d'accord :D


 
Je peux aussi t'en sortir une version PVM sur 4 quadri-pro.... :D


---------------
Le Tyran
n°419516
l'eau de l​a
Posté le 06-06-2003 à 15:09:25  profilanswer
 

Pour un int[50] ? Tu ne gagnera pas de temps.

n°419517
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 06-06-2003 à 15:09:48  profilanswer
 

antp a écrit :


 
T'avais pas promis une version MMX ?
 
edit: grilled :o


Si, mais faut que je réinstalle Masm, j'ai reformaté mon disque récemment :/


---------------
J'ai un string dans l'array (Paris Hilton)
n°419518
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 15:10:55  profilanswer
 

Harkonnen a écrit :

laissez moi prendre le temps de vous poster une version MMX-optimised (donc avec 4 additions simultanées) et dont le buffer sera entièrement prefetché en L1, et ça mettra tout le monde d'accord :D


 
Remarque si je compile le mien avec optimisation MMX... :D


---------------
Le Tyran
n°419523
l'eau de l​a
Posté le 06-06-2003 à 15:13:08  profilanswer
 

Fais la avec les fonctions intrasèques de GCC :)

n°419525
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 15:14:01  profilanswer
 

5 pages sur ce topic de merde qq même  [:ddr555]


---------------
Le Tyran
n°419548
l'eau de l​a
Posté le 06-06-2003 à 15:19:57  profilanswer
 

On peut passer à une multiplication de matrice pleine si tu veux un truc plus complexe  :lol:

n°419559
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 15:24:53  profilanswer
 

L'eau de la a écrit :

On peut passer à une multiplication de matrice pleine si tu veux un truc plus complexe  :lol:  


 
Spas drole, c bourrin la matrice pleine. La matrice creuse c plus subtile :D


---------------
Le Tyran
n°419601
antp
Super Administrateur
Champion des excuses bidons
Posté le 06-06-2003 à 15:45:05  profilanswer
 

Si vous faites un truc de calcul sur matrice creuse ça m'intéresse, ça me permettra de remplacer la version qu'on utilise ici au boulot si vous faites mieux :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°419608
LetoII
Le dormeur doit se réveiller
Posté le 06-06-2003 à 15:46:50  profilanswer
 

antp a écrit :

Si vous faites un truc de calcul sur matrice creuse ça m'intéresse, ça me permettra de remplacer la version qu'on utilise ici au boulot si vous faites mieux :D


 
Arf, et tu paye combien? :D


---------------
Le Tyran
n°419646
l'eau de l​a
Posté le 06-06-2003 à 16:00:36  profilanswer
 

J'ai un petit record à mon actif :
 
x25 sur un matrice pleine entière de 512*512 sur un athlon 1.2Ghz entre une version "simple" et une version tuné à mort en C (strip mining, prefetch, loopunrolling, déplacement de constante,...):)
 
Sinon, c'est quoi l'algo d'une matrice creuse ?
 
(ps qq'un a't-il déjà utilisé : http://www.oonumerics.org/blitz/)


Message édité par l'eau de la le 06-06-2003 à 16:26:03
n°420079
jagstang
Pa Capona ಠ_ಠ
Posté le 06-06-2003 à 18:57:13  profilanswer
 

Je m'excuse mais y'a bcp de chose à optimiser avant d'arriver à se poser ce genre de question (je parle d'affectation / test)
 
pour moi c'est de l'optimisation à 2 balles
 
Imagine le temps que tu vas passer pour "améliorer" ton code dans ce genre de détail.
 
Passer une demi-journée pour gagner 8ms, je crois pas que le client soit d'accord de payer ce genre de "gadgets"
 
Maintenant, si tu travail dans l'aéronautique je discute pas ! :p

n°420080
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 06-06-2003 à 18:58:09  profilanswer
 

Harkonnen a écrit :

autant pour moi pour le while  [:yamusha]  

au temps :o


---------------
lecteur mp3 yvele's smilies jeux de fille
n°420081
skeye
Posté le 06-06-2003 à 19:00:56  profilanswer
 


[:quoted]
Au temps en emporte le vent?:lol:
 
[edit]
au temp pour moi après avoir lu le lien de JagStang...même si je continuerai surement à l'écrire autant!


Message édité par skeye le 06-06-2003 à 19:03:12
n°420082
jagstang
Pa Capona ಠ_ಠ
Posté le 06-06-2003 à 19:01:26  profilanswer
 
n°420085
forummp3
@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@
Posté le 06-06-2003 à 19:04:52  profilanswer
 

skeye a écrit :


[:quoted]
Au temps en emporte le vent?:lol:
 
[edit]
au temp pour moi après avoir lu le lien de JagStang...même si je continuerai surement à l'écrire autant!

:dtc: on en avait deja parler dans blabla@prog :D


---------------
lecteur mp3 yvele's smilies jeux de fille
n°420086
skeye
Posté le 06-06-2003 à 19:05:28  profilanswer
 

forummp3 a écrit :

:dtc: on en avait deja parler dans blabla@prog :D


N'empêche que si tu lis son lien, c'est pas si sûr que ça... :whistle:

n°420143
Joel F
Real men use unique_ptr
Posté le 06-06-2003 à 19:17:29  profilanswer
 

L'eau de la a écrit :

MMX ET template c++ , je veux voir ça !


 
Ben moi en tout cas je m'amuse bien avec template C++ et AltiVec alors ...

n°421698
Ace17
Posté le 09-06-2003 à 20:55:29  profilanswer
 

skeye a écrit :


N'empêche que si tu lis son lien, c'est pas si sûr que ça... :whistle:  


 
Bah si quand meme. C'est qu'on en apprend des choses ici!


Message édité par Ace17 le 09-06-2003 à 20:56:11
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
[PHP/HTML] vaut il mieux : bcp de echo "" ou bcp de balises <?php> ?addition affectation...
test connection visiteurTest des variables suite et fin
Affectation d'un tableau de AnsiString dans un autreIl vaut mieux faire des Iframes ou des modeles ?
BETA test REALBasic[C]Operation de test de pixel sur images.
Recup d'evenement clavier et test...[ Besoin du test de mon HTML ] Div avec overflow, quels navigateurs ?
Plus de sujets relatifs à : [C/C++] Affectation ou test ? Quel est le mieux ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR