GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: scott1 le 11 Mars 2010, 13:38:29
-
Bonjour a tous, j'aimerais savoir lequel de ces 2 public est le plus rapide a s'exécuter.
public IsAPizzabike(carid)
{
if(carid >= 102 && carid <= 107)
{
return 1;
}
return 0;
}
public IsAPizzabike(carid)
{
new pveh = GetVehicleModel(carid);
if(pveh == 448)
{
return 1;
}
return 0;
}
Merci d'avance
-
Je pense que le premier s'exutera plus vite que le deuxième mais quel importance, ils sont executés en quelques miliemes de secondes.
-
Salut,
s'ils sont exécutés en quelques millisecondes c'est que ton serveur est en carton, normalement tu devrais pouvoir exécuté au minimum une centaine de fois par milliseconde....
cherche benchmark dans rechercher et tu trouvera des macro de test de fonctions (indice: ça se trouve dans Codes/scripts utiles)
++Sim++
-
La deuxième fonction est moins rapide car elle contient un appel à une fonction.
C'est donc la première qui sera plus rapide.
Mais la différence est très certainement non quantifiable.
D'après mes tests, il faut environs 100 ms pour exécuter 1 000 000 de fois la première fonction et 120 ms pour exécuter la seconde.
(Machine utilisée : Intel core 2 Duo 2.33 Ghz avec 2Go de mémoire)
Le différence d'exécution entre ces deux fonction est de 20/1 000 000 000 s (20 milliardièmes de seconde) en faveur de la première
Le seul problème avec le première c'est que comme elle se base sur l'ID d'un véhicule, il faut faire très attention lorsqu'on en rajoute ou qu'on en enlève sinon on risque de tout décalé.
De plus, cette fonction devra être modifiée si on rajoute ou enlève des PizzaBoys.
Et comme la différence de temps d'exécution est infime, je te conseille de prendre la deuxième fonction qui fonctionne dans tous les cas, peu importe l'ordre dans lequel sont crées les véhicules.
++
Syg
-
Voila la seconde fonction, qui est un tout petit peu améliorer =)
public IsAPizzabike(carid)
{
if(GetVehicleModel(carid) == 448)
{
return 1;
}
return 0;
}
-
Salut,
on peut faire légèrement mieux mais moins lisible:
public IsAPizzabike(carid)
{
return (GetVehicleModel(carid) == 448);
}
je ne vois pas comment réduire d'avantage....
++Sim++
-
Salut,
on peut faire légèrement mieux mais moins lisible:
public IsAPizzabike(carid)
{
return (GetVehicleModel(carid) == 448);
}
je ne vois pas comment réduire d'avantage....
++Sim++
Bof ...
ça fonctionne mais ça renvoie des boolean (ça revient à la même chose mais si le gars veut qu'on retourne des nombres, vaut mieux faire des return 1 ou 0 ^^ )
-
s'ils sont exécutés en quelques millisecondes c'est que ton serveur est en carton, normalement tu devrais pouvoir exécuté au minimum une centaine de fois par milliseconde....
Quand je disais ça c'est que c'est infiniment petit le labs de temps dans lequel s'exécute l'action et que j'avais pas les mots a utiliser :P
-
Merci tout le monde ! ça m'a bien aidé