Gambas France BETA


Pas de compte ? Incription

optimisation et rapidité...

1
AuteurMessages
spheris#1 Posté le 5/3/2012 à 09:25:26
En c, pour eviter des if then qui consomment des ressources inutilement :

Par exemple au lieu d’ecrire

1
2
3
4
5
6
IF (var1>var2)
{
max=var1;
} else {
max=var2;
}


on ecrira, beaucoup plus economique en temps de traitement:

1
2
3
4
5
6
test=(var1>var2); // renvoi 1 ou 0
max=var1*test+var2*(1-test);

et voila !
si var1>var2, alors test=1, et max=var1
si var1<var2, alors test=0, et max=var2


Cette ruse s'applique t elle à notre crevette ?
;)
Prokopy#2 Posté le 5/3/2012 à 12:34:28
Kinder PinguiPersonnellement, en C j'aurais écrit :

max = var1 > var2 ? var1 : var2;


En gambas, il y a la fonction If() qui permet de faire le même genre de choses :

1
myMax = If(var1 > var2, var1, var2)


Mais dans le cas du max (ou du min d'ailleurs), il y a une fonction toute prête. ;)

1
myMax = Max(var1, var2)
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique, rien ne fonctionne et on ne sait pas pourquoi.
gambix#3 Posté le 5/3/2012 à 20:53:06
Faire simple !et la max permer d'en faire un max et de réduire énormément les tests !!!
Moins de texte dans une signature c'est agrandir son espace.
gambix#4 Posté le 5/3/2012 à 20:54:37
Faire simple !bloquer une valeur dans une fourchette :

1
var = Min(100, Max( 0, i))
Moins de texte dans une signature c'est agrandir son espace.
1