Better perf logging
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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);
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<ITick>().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);
|
||||
|
||||
Reference in New Issue
Block a user