Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / News: Quoi de neuf sur Oniromancie (...) / Sorties: Dread Mac Farlane - episode 6 / News: Quoi de neuf sur Oniromancie (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

280 connectés actuellement

29352138 visiteurs
depuis l'ouverture

7362 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Level Up!

New RPG Maker

Tashiroworld

RPG Fusion

Tous nos partenaires

Devenir
partenaire



Benchmark simplifié

[Aide au développeur] Pour les développeurs de scripts, afin de mesurer la performance d'un code simplement à l'aide de la classe Time.

Script pour RPG Maker XP
Ecrit par Crystal
Publié par Crystal (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Si vous développez un script, il est souvent très utile de favoriser certaines structures afin d'éviter de gaspiller trop de ressources sur une opération. Afin de savoir quelles méthodes ou structures sont meilleures, et ceci sans inclure une immense classe Benchmark qui propose beaucoup trop d'options et de précision pour les besoins de simples codeurs de RPG Maker, j'ai crée une classe Performance. Elle est très simple à utiliser.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
class Performance
 
  def self.check(test_name, n = 20000)
    if block_given?
      t = Time.now
      n.times do
        yield
      end
      @@tests[test_name] = Time.now - t
    end
  end
 
  def self.report(msg = '')
    @@tests = {}
    yield if block_given?
    @@tests.sort! {|i, j| i[1] <=> j[1] }
    @@tests.each_pair do |i, j|
      msg << "#{i} => #{j}\n"
    end
    p msg
  end
 
  def self.clear
    @@tests.clear
  end
 
end



Vous n'avez qu'à écrire votre test ainsi:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
Performance.report do
  a = ''
  Performance.check('test 1') do
    a << 'b'
  end
  a.clear
  Performance.check('test 2') do
    a += 'b'
  end
end



Résultats:

Citation:

test1 => 0.016
test2 => 0.812



Le résultat est du test le plus rapide au plus lent. Il est possible de modifier le nombre de fois qu'un bloc est executé (par défaut 20000) en ajoutant le nombre après le nom du test. Vous pouvez faire autant de tests que vous voulez, aussi complexes que vous voulez:

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
a = 'anana:abobd:234:fuuu:2'
Performance.report do
  Performance.check('alpha') do
    ! (a =~ /bd:3|furr/).nil?
  end
  Performance.check('beta') do
    a === /bd:3|furr/
  end
  Performance.check('omega') do
    a.include?('bd:3') || a.include?('furr')
  end
end



Résultats:

Citation:

beta => 0.016
omega => 0.047
alpha => 0.062



Pour réinitialiser les résultats en mémoire, il suffit d'appeler:

Portion de code : Tout sélectionner

1
Performance.clear



C'est tout ! Bon scripting. image



Aucun commentaire n'a été posté pour le moment.

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers