inWarcraft Forum  

Zurück   inWarcraft Forum > Allgemeine Foren > Mapping Foren > Triggerforum

Antwort
 
Themen-Optionen Ansicht
Alt 21. Juni 2012, 23:43   #1
muzzel
 
Benutzerbild von muzzel
Staff Maps
Map-Contests

Gewinner Staffquiz XV
 
Registriert seit: Sep 2008
Ort: BaWü
BNet Acc: muzzel
Beiträge: 2.994
Benchmark: TriggerExecute/TriggerEvaluate/ForGroup

Advertising
Inspiriert durch http://www.hiveworkshop.com/forums/w...n-code-212181/ wollte ich ich selbst nochmal die Performanz von verschiedenen Möglichkeiten Dynamischen Code auszuführen testen.

- TriggerExecute
- TriggerEvaluate
- ForGroup (über Boolexpressions)

Entgegen dem Ergebnis von Bribes Test ist bei mir ForGroup mit Abstand am schnellsten, TriggerEvaluate ist am langsamsten.

Wer Lust hat kann den Test selbst mal ausführen und Ergebnisse hier posten. Bin mir auch nicht zu 100% sicher wie gut die Methode über fps ablesen taugt, aber war auf die Schnelle das einfachste.

scope Benchmark initializer Init
globals
private force f = CreateForce()
private boolexpr b
private trigger trig = CreateTrigger()
endglobals

function TestFunc takes nothing returns boolean
return false
endfunction

function BenchmarkCode takes nothing returns nothing
// ForceEnumPlayers. 5 instances: 36-39, 4 instances: 43-47 fps, 3 instances: 57-60 fps
//call ForceEnumPlayers(f, b)

// TriggerEvaluate. 4 instances: dropping to zero, 3 instances: 33-37 fps, 2 instances: 47-53 fps
//call TriggerAddCondition(trig, b)
//call TriggerEvaluate(trig)
//call TriggerClearConditions(trig)

// TriggerExecute. 5 instances: 13-15 fps, 4 instances: 33-38, 3 instances: 42-48 fps, 2 instances: 50-55 fps
//call TriggerAddCondition(trig, b)
//call TriggerExecute(trig)
//call TriggerClearConditions(trig)
endfunction

// ---------------------------------------------------

private function Test takes nothing returns nothing
local integer i = 500
loop
set i = i - 1
call BenchmarkCode()
exitwhen i == 0
endloop
endfunction

private function Init takes nothing returns nothing
set b = Filter(function TestFunc)
call ForceAddPlayer(f, Player(0))
// Number of instances:
call TimerStart(CreateTimer(), 0.03125, true, function Test)
call TimerStart(CreateTimer(), 0.03125, true, function Test)
call TimerStart(CreateTimer(), 0.03125, true, function Test)
call TimerStart(CreateTimer(), 0.03125, true, function Test)
call TimerStart(CreateTimer(), 0.03125, true, function Test)
endfunction
endscope
__________________

<Argon]> in der zeit, in der ich das mit tikz gebastelt hab, hätt ich das als 2m^2 holzskulptur schnitzen können
<Argon]> mit nem Skalpell
Penguin World Domination - be part of it!
» LaTeX2png Converter | Gaias Retaliation ORPG | Ulumulu Entertainment | AAT
muzzel ist gerade online   Mit Zitat antworten
Alt 24. Juni 2012, 16:32   #2
WaterKnight
 
Benutzerbild von WaterKnight
Sektionsleiter Maps
 
Registriert seit: Aug 2003
BNet Acc: WaterKnight
Beiträge: 4.208
Sollst die Triggerconditions auch nicht jedesmal neu erstellen/clearen. Entweder zuordnen und abfragen, ob der Trigger schon vorhanden ist oder von vornherein alle Funktionen belegen/voraussetzen.

Du meintest, du wolltest boolexpr als Input nehmen. Wieso? Bei mir benutze ich ohnehin eine Wrapperklasse. Von daher steht mir frei, welche Execute-Native ich nehme bis auf die, die code benutzen.
__________________
Water's Footmen Wars
Defend Wintercastle
Mana
God's Ascension (coming soon)
Dark Colony (coming soon)

Versunkene Zeiten - Vortex - Wild Scope - Hells Edge -
Prison Break

Geändert von WaterKnight (24. Juni 2012 um 16:36 Uhr)
WaterKnight ist offline   Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[vJass] ForGroup( ) abfl Triggerforum 7 21. November 2010 19:02
[Gelöst] ForGroup funktioniert nicht? Cabble Triggerforum 6 30. Oktober 2010 03:04
Benchmark Punkte Dragon_of_Storm Support-, Coding- & Webdesignforum 6 14. März 2008 14:26
WC3 Benchmark [WC3BM] UrzaKeFrostgard Projekte/Testing 24 19. Dezember 2007 15:17
ForGroup: Schleifencode ohne eigene Func? manithu Triggerforum 2 26. September 2006 21:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:45 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.


ingame Netzwerk
Support | AGB | Probleme mit der Werbung melden
Online Werbung | Mediadaten | Unternehmen | Karriere | Presse | Impressum

© ingame GmbH, ingame™, in™ und incup™ sind eingetragene Markenzeichen der ingame GmbH. Verwendung von Inhalten nur mit schriftlicher Genehmigung.