diff --git a/OpenRA.Game/Actor.cs b/OpenRA.Game/Actor.cs index 52c5e2c172..f52dc09630 100755 --- a/OpenRA.Game/Actor.cs +++ b/OpenRA.Game/Actor.cs @@ -15,7 +15,8 @@ using System.Linq; using OpenRA.FileFormats; using OpenRA.GameRules; using OpenRA.Traits; -using OpenRA.Traits.Activities; +using OpenRA.Traits.Activities; +using OpenRA.Support; namespace OpenRA { @@ -74,8 +75,13 @@ namespace OpenRA while (currentActivity != null) { var a = currentActivity; + + var sw = new Stopwatch(); currentActivity = a.Tick(this) ?? new Idle(); - + var dt = sw.ElapsedTime(); + if( dt > 0.001 ) + Log.Write("perf", "[{2}] Activity: {0} ({1:0.000} ms)", a, dt * 1000, Game.LocalTick); + if (a == currentActivity) break; if (currentActivity is Idle) diff --git a/OpenRA.Game/Exts.cs b/OpenRA.Game/Exts.cs index 4a2b65487a..55c5ae0eeb 100644 --- a/OpenRA.Game/Exts.cs +++ b/OpenRA.Game/Exts.cs @@ -64,7 +64,7 @@ namespace OpenRA a( x ); var dt = sw.ElapsedTime() - t; if( dt > time ) - Log.Write("perf", text, x, dt * 1000); + Log.Write("perf", text, x, dt * 1000, Game.LocalTick); } ); } } diff --git a/OpenRA.Game/World.cs b/OpenRA.Game/World.cs index 2e89ee1dae..e9f76122fb 100644 --- a/OpenRA.Game/World.cs +++ b/OpenRA.Game/World.cs @@ -146,14 +146,13 @@ namespace OpenRA if (DisableTick) return; - actors.DoTimed( x => x.Tick(), "expensive actor tick: {0} ({1:0.000} ms)", 0.001 ); - + actors.Do( x => x.Tick() ); Queries.WithTraitMultiple().DoTimed( x => { x.Trait.Tick( x.Actor ); - }, "expensive trait tick: {0} ({1:0.000} ms)", 0.001 ); + }, "[{2}] Trait: {0} ({1:0.000} ms)", 0.001 ); - effects.DoTimed( e => e.Tick( this ), "expensive effect tick: {0} ({1:0.000} ms)", 0.001 ); + effects.DoTimed( e => e.Tick( this ), "[{2}] Effect: {0} ({1:0.000} ms)", 0.001 ); Game.viewport.Tick(); while (frameEndActions.Count != 0) frameEndActions.Dequeue()(this);