AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  Connexion  

Partagez | 
 

 Comparer les performances de 2 scripts gml

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Comparer les performances de 2 scripts gml   Dim 30 Oct 2011 - 15:30

Voici une méthode pour comparer les performances de 2 bouts de code.
Utile quand on doit faire un bout de code optimisé (par exemple dans une double loop for)

Code:
ts = current_time

for(i=0; i<500000; i+=1)
{
    <code1>
}

t1 = current_time - ts
ts = current_time

for(i=0; i<500000; i+=1)
{
    <code2>
}
   
t2 = current_time - ts

show_error("t1 = " + string(t1) + " - t2 = " + string(t2), 0)

Exemple :
Comparaison de :
Code:
if(x<0) x=0
et
Code:
x = max(x, 0)

Code:
ts = current_time

for(i=0; i<500000; i+=1)
    if(x<0) x=0

t1 = current_time - ts
ts = current_time

for(i=0; i<500000; i+=1)
    x = max(x, 0)
   
t2 = current_time - ts

show_error("t1 = " + string(t1) + " - t2 = " + string(t2), 0)

Et on remarque qu'utiliser un if est 2x plus rapide.

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Comparer les performances de 2 scripts gml   Dim 30 Oct 2011 - 19:26

Code:
place_meeting(mouse_x,mouse_y,self);
est plus rapide que
Code:
position_meeting(mouse_x,mouse_y,self);
Revenir en haut Aller en bas
Qual
Utilisateur confirmé: Rang ****
avatar

Messages : 1450
Projet Actuel : Tower Defence

MessageSujet: Re: Comparer les performances de 2 scripts gml   Dim 30 Oct 2011 - 22:25

Code:
if abla = true && mouse_check_button_pressed ( mb_left )
abla = false

if abla =false && mouse_check_button_pressed ( mb_left )
abla = true


est plus lent que :

Citation :
if mouse_check_button_pressed(mb_left)
abla = !abla

Qui c'est le boss ? guns

_________________
Revenir en haut Aller en bas
http://www.brainwizz.fr
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Comparer les performances de 2 scripts gml   Dim 30 Oct 2011 - 22:32

Petit joueur guns
Code:
abla = abla ^ mouse_check_button_pressed(mb_left)
voir même
Code:
abla ^= mouse_check_button_pressed(mb_left)

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Comparer les performances de 2 scripts gml   Ven 4 Nov 2011 - 9:40

t1:
Code:
execute_string("");

t2:
Code:
object_event_add(object_index,ev_draw,0,"");
object_event_clear(object_index,ev_draw,0);


Citation :
t1 = 1812 - t2 = 15641
t1 = 1797 - t2 = 15625
t1 = 1813 - t2 = 15578
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Comparer les performances de 2 scripts gml   Ven 4 Nov 2011 - 9:42

De toute façon ces fonctions cay le mal :p

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Comparer les performances de 2 scripts gml   Ven 4 Nov 2011 - 10:06

Ouai mais j'en ai besoin sauf si tu as une alternative pour attribuer des instructions à une instance. C'est vrais que le temps de réponse fait réfléchir :s
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Comparer les performances de 2 scripts gml   Ven 4 Nov 2011 - 11:04

En principe on peut toujours contourner.
Pis moi si je bannis c'est fonctions c'est parce que c'est utilisable only GM. (et oui aussi parce que c'est un peu mou)

Perso la plupart du temps j'utilise un switch case pour remplacer, mais après ça dépend du contexte :p

_________________
                 
Revenir en haut Aller en bas
glcraft
Utilisateur confirmé: Rang *****
avatar

Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

MessageSujet: Re: Comparer les performances de 2 scripts gml   Ven 4 Nov 2011 - 13:55

et puis execute_string c'est une focntion d'un interpreteur, l'alternative la plus simpe c'est :
txt="draw_text -x 10 -y 10 -s 'texte a ecrire' "
if string_find_string(txt,"draw_text")//<- ché pa si el exits Razz
{
//tout se base la dessus
}
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Morwenn
Très bonne participation
avatar

Messages : 151
Projet Actuel : Icare

MessageSujet: Re: Comparer les performances de 2 scripts gml   Ven 4 Nov 2011 - 14:38

En général, même plutôt que d'utiliser des switch, dans pas mal de cas, on peut se débrouiller avec des tableaux et des constantes afin d'avoir malgré tout un code lisible.
Mais bon, je ne sais pas vraiment si les tableaux GM sont rapides ou non (je dirais non ? awesome )

_________________

Dur Dabla, pour qui voudrait écouter un brin de metal celtique.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Comparer les performances de 2 scripts gml   Sam 28 Avr 2012 - 9:45

J'ai encore du mal à comprendre pourquoi mais voilà:

Code:
truc= global.machin;
truc2= global.machin2;
truc3= global.machin3;
truc4= global.machin4;
truc5= global.machin5;

est largement plus long que

Code:
truc= ds_map_find_value(global.machin,'1');
truc2= ds_map_find_value(global.machin,'2');
truc3= ds_map_find_value(global.machin,'3');
truc4= ds_map_find_value(global.machin,'4');
truc5= ds_map_find_value(global.machin,'5');
Revenir en haut Aller en bas
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Comparer les performances de 2 scripts gml   Sam 28 Avr 2012 - 10:49

C'est vrai que la, c'est pas du tout logique x)
Plus long de combien a peu près en rapport ?

_________________
                 
Revenir en haut Aller en bas
SPLN
Utilisateur confirmé: Rang ***
avatar

Messages : 588
Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça
Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)

MessageSujet: Re: Comparer les performances de 2 scripts gml   Sam 28 Avr 2012 - 13:58

Citation :
t1 = 1514 / t2 = 5865
Ce n'est pas plutôt l'inverse?
Spoiler:
 

A moins que ça soit moi qui n'est strictement rien compris :/
Ça fait quand même une énorme différence, en effet.

_________________
SP Lecteur Multimedia
I am an in the GM Quiz!
Revenir en haut Aller en bas
http://sp-lecteur-multimedia.skyrock.com/
onilink_
Modérateur
avatar

Messages : 8902
Localisation : Montpellier
Projet Actuel : Planet Centauri
OniDev

MessageSujet: Re: Comparer les performances de 2 scripts gml   Sam 28 Avr 2012 - 14:54

Ouai la comme ça ça me parait quand même plus logique x)

_________________
                 
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Comparer les performances de 2 scripts gml   Sam 28 Avr 2012 - 16:10

Chez moi avec 9 attributions dextern call j'ai le résultat inverse. Je reteste ça quant je rentre.
Revenir en haut Aller en bas
Caly
Utilisateur confirmé: Rang ****
avatar

Messages : 1279
Localisation : Haute Normandie
Projet Actuel : Capturer, apprivoiser et dresser des Pokémons sauvages pour faire des spectacles de rue et en faire mon métier.

MessageSujet: Re: Comparer les performances de 2 scripts gml   Dim 29 Avr 2012 - 9:31

Je confirme.


Code:
globalvar ___dll;
___dll=ds_map_create();

ds_map_add(___dll,'cpkOpen',external_define('cpk.dll',"OpenResource",dll_stdcall,ty_real,2,ty_string,ty_string));
external_call(ds_map_find_value(___dll,'cpkOpen'),argument0,argument1);

est plus rapide que :

Code:
global.cpkOpen=external_define('cpk.dll',"OpenResource",dll_stdcall,ty_real,2,ty_string,ty_string);
external_call(global.cpkOpen,argument0,argument1);

Sur 9 déclarations et 10 appels j'ai 50ms de différence.
Revenir en haut Aller en bas
Contenu sponsorisé




MessageSujet: Re: Comparer les performances de 2 scripts gml   

Revenir en haut Aller en bas
 
Comparer les performances de 2 scripts gml
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Caractéristiques pour comparer les poussettes
» Comparer les formations DEJEPS
» comparer 2 fichier GEDCOM dans HEREDIS
» Comparer deux fichiers
» Le match : Pliko P3/Chicco Scoop (Enjoy)

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Scripts GML-
Sauter vers: