Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=a8ee27d5c8cf540132159d9c6ddae012Médailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

benchmark real vs integer
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 21/08/09 14:52    Sujet du message: benchmark real vs integer Citer

Jass:
library Benchmark initializer init

globals
    private real T0 = 0.
    private real T1 = 0.
endglobals

private function Actions takes nothing returns nothing
    local integer sw = StopWatchCreate()

   local integer i = 1
   local integer x = 0
    local real r = 0.
    local real t0 = 0.
    local real t1 = 0.
   
    call BJDebugMsg(" ")
    set t0 = StopWatchMark(sw)
   
   loop
    exitwhen x >= 100
    set x = x+1
   
   
    endloop
   

   
   set t1 = StopWatchMark(sw)
    set T0 = t1-t0
    call BJDebugMsg("set i ; " + R2S((T0)*10000.))
   
   
    set t0 = StopWatchMark(sw)
   
    loop
    exitwhen r >= 100.
    set r = r+1.
   

    endloop
   
   
    set t1 = StopWatchMark(sw)
    set T1 = t1-t0
   
    call BJDebugMsg("set r ; " + R2S((T1)*10000.))
    call BJDebugMsg("T0 / T1 == " + R2S(T0/T1))
   call StopWatchDestroy(sw)
endfunction

//===========================================================================
private function init takes nothing returns nothing
    local trigger trig = CreateTrigger(  )
    call TriggerRegisterPlayerChatEvent( trig, Player(0), "test", true )
    call TriggerAddAction( trig, function Actions )
endfunction

endlibrary


Pour vous c'est peut être logique mais moi ça me choque que l'utilisation de réels est plus rapide que l'utilisation d'entier o_O. (30 % plus lent environ).

Mais bon comme les index de variables globales array sont des entiers et que la conversion d'un entier en réel est "lent", faut pas s'amuser à utiliser des réels quand on peut utiliser des entiers. Rolling Eyes
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Brissou de Mourièssou
Créateur de sorts, depuis 1936.


Inscrit le: 30 Aoû 2007
Messages: 1511
Sujets: 26
Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition.
Médailles: 2 (En savoir plus...)
Concours de sorts amusants (Quantité : 1) Créateur de héros (Quantité : 1)

MessagePosté le: 21/08/09 15:48    Sujet du message: Citer

Etonnant en effet.

A part ça, ça te tente de corriger tous les problèmes d'Arena-100 pour qu'elle redevienne compatible au lieu de faire des benchmark en carton.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 21/08/09 15:53    Sujet du message: Citer

Brissou de Mourièssou a écrit:
Etonnant en effet.

A part ça, ça te tente de corriger tous les problèmes d'Arena-100 pour qu'elle redevienne compatible au lieu de faire des benchmark en carton.


Go télécharger le nouveau jasshelper pour fixer le nouveau bug de blizzard, en attendant le nouveau patch. (avec des fonctions supplémentaires appelées mais au moins cela fonctionnera ...)
Et si tu utilises d'autres return bug que H2I, go to hell sale noob.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2012
Sujets: 49

Médailles: 2 (En savoir plus...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 21/08/09 16:29    Sujet du message: Citer

Maintenant fait la même chose mais en effectuant le teste des réels en premier.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 21/08/09 17:15    Sujet du message: Citer

Ayane a écrit:
Maintenant fait la même chose mais en effectuant le teste des réels en premier.

Huhu, le résultat est inversé.
Des explications sur le comment du pourquoi ?
Moi pas comprendre, je croyais que le benchmark était valide Confused

Bien, il est évident que je manque de connaissances, quelque chose m'échappe, va falloir m'éclairer pour que je puisse faire des benchmarks digne de ce nom.
Merci d'avance.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Brissou de Mourièssou
Créateur de sorts, depuis 1936.


Inscrit le: 30 Aoû 2007
Messages: 1511
Sujets: 26
Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition.
Médailles: 2 (En savoir plus...)
Concours de sorts amusants (Quantité : 1) Créateur de héros (Quantité : 1)

MessagePosté le: 21/08/09 23:35    Sujet du message: Citer

Troll-Brain a écrit:
Brissou de Mourièssou a écrit:
Etonnant en effet.

A part ça, ça te tente de corriger tous les problèmes d'Arena-100 pour qu'elle redevienne compatible au lieu de faire des benchmark en carton.


Go télécharger le nouveau jasshelper pour fixer le nouveau bug de blizzard, en attendant le nouveau patch. (avec des fonctions supplémentaires appelées mais au moins cela fonctionnera ...)
Et si tu utilises d'autres return bug que H2I, go to hell sale noob.


Ohlala j'en utilise à la pelle.
J'ai téléchargé le dernier pack avec la version jasshelper 0.9.I, y me "compile" ma map malgré tous les returns bugs. Et bien sûr elle ne se lance pas. J'ai essayé de chercher le jassHelper à part mais je n'ai trouvé que la version 0.9.G qui je suppose est plus ancienne que la I. J'ai tout de même testé et là ça plante weuh lors de la compilation.
Aurais-je loupé quelquechose ?

Rien à voir:
J'ai voulu testé la hashtable en gui et ça m'a fait planter l'éditeur lol.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 21/08/09 23:40    Sujet du message: Citer

Brissou de Mourièssou a écrit:
Aurais-je loupé quelquechose ?
Oui, la J.0 Smile
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 21/08/09 23:49    Sujet du message: Citer

Faut utiliser le dernier JNGP, puis tu mets à jour jasshelper en mettant les fichiers au bon endroit dans le JNGP, faut remplacer les anciens koa.

H2I se remplace par la fonction native GetHandleId, évidemment de même pour Unit2I et autres fonctions du genre, je crois que t'étais fan de ce genre de fonction, tu ne généralisais pas le type handle mais utilisais différents sous types, il me semble.

Et pour les autres return bug soit tu choisis la voie à la c.. d'IceFrog, go fonctions hashtables.
Ou si tu veux un code propre et accessoirement qui marche (toutes les fonctions des hashatbles ne semblent pas encore être au point, euphémisme powa ...), tu remplaces les autres return bug par l'utilisation d'une struct + GetHandleId

Citation:
Rien à voir:
J'ai voulu testé la hashtable en gui et ça m'a fait planter l'éditeur lol.

Alors c'est donc vrai ...
Et les utilisateurs de mac ne peuvent pas utiliser les nouvelles fonctions, rhahlala ces stagiaires, manqueraient plus qu'ils soient payés ...

PS : Go mp si tu ne vois toujours pas comment faire, merci.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 22/08/09 10:57    Sujet du message: Citer

Troll-Brain a écrit:
Ayane a écrit:
Maintenant fait la même chose mais en effectuant le teste des réels en premier.

Huhu, le résultat est inversé.
Des explications sur le comment du pourquoi ?
Moi pas comprendre, je croyais que le benchmark était valide Confused

Bien, il est évident que je manque de connaissances, quelque chose m'échappe, va falloir m'éclairer pour que je puisse faire des benchmarks digne de ce nom.
Merci d'avance.

_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 23/08/09 17:42    Sujet du message: Citer

Avec 4000 itérations de boucles j'obtiens des résultats similaires, ce qui je présume est logique.
La leçon a retenir est que les benchmarks sont imprécis si il n'y a pas assez d'itérations ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 23/08/09 22:40    Sujet du message: Citer

Troll-Brain a écrit:
La leçon a retenir est que les benchmarks sont imprécis si il n'y a pas assez d'itérations ?

T'as fait des statistiques dans ta vie non ? =p
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 23/08/09 22:45    Sujet du message: Citer

profet a écrit:
T'as fait des statistiques dans ta vie non ? =p
L'informatique n'est pas sensée être aléatoire pour ce que j'en sais =o
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 23/08/09 23:10    Sujet du message: Citer

Ouai 0.5 c'est pas le bit intermédiaire entre 0 et 1 Surprised

Ce qui m'étonne c'est le caractère systématique de la chose (j'avais essayé plusieurs fois hein)
J'aimerais juste avoir l'explication de comment l'ordre des tests influaient sur le résultat Confused
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 24/08/09 00:20    Sujet du message: Citer

J'imagine que c'est une dll a chargé ou quelque chose dans le genre pour obtenir le résultat du benchmark , donc le premier est le plus lent car il initialise tout le bordel.

Après je m'y connais moins que profet ou autre.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 24/08/09 00:34    Sujet du message: Citer

Bantas a écrit:
L'informatique n'est pas sensée être aléatoire pour ce que j'en sais =o

Non, mais ce sont les précisions qui importent ici, et si le benchmark a une précision de 1 milliseconde (valeur totalement arbitraire), et que le benchmark réalisé donne un résultat de 1 milliseconde, la marge d'erreur est de 100% !
Tandis que si on réalise 100 fois plus d'itérations, le résultat devrait donc avoisiner les 100ms, et la marge d'erreur tomber à 1%, ce qui est nettement plus acceptable.

De plus dans le cas de TB, il y a surement en effet une quelconque opération qui prend du temps à la première série d'itérations (là comme ça je pense à une allocation d'un supplément de mémoire vive pour warcraft mais il faudrait vérifier), ce temps "supplémentaire" n'étant pas énorme mais suffisament pour expliquer la différence de 30% du premier test.
Pour 4000 itérations (donc 40 fois plus que la première série), et en admettant que le temps supplémentaire reste le même, on tombe à 0.75% ce qui est donc relativement négligeable.


PS: pour ce genre de test, j'effectuerai plutôt une série de 10,000 itérations au minimum (mais attention à ne pas dépasser le LIMIT_OP !)
Et je réaliserais également les test de manière équitable pour les deux (même conditions: dans des fonctions séparées, etc...)
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com