Better perf logging
This commit is contained in:
@@ -15,7 +15,8 @@ using System.Linq;
|
|||||||
using OpenRA.FileFormats;
|
using OpenRA.FileFormats;
|
||||||
using OpenRA.GameRules;
|
using OpenRA.GameRules;
|
||||||
using OpenRA.Traits;
|
using OpenRA.Traits;
|
||||||
using OpenRA.Traits.Activities;
|
using OpenRA.Traits.Activities;
|
||||||
|
using OpenRA.Support;
|
||||||
|
|
||||||
namespace OpenRA
|
namespace OpenRA
|
||||||
{
|
{
|
||||||
@@ -74,8 +75,13 @@ namespace OpenRA
|
|||||||
while (currentActivity != null)
|
while (currentActivity != null)
|
||||||
{
|
{
|
||||||
var a = currentActivity;
|
var a = currentActivity;
|
||||||
|
|
||||||
|
var sw = new Stopwatch();
|
||||||
currentActivity = a.Tick(this) ?? new Idle();
|
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 (a == currentActivity) break;
|
||||||
|
|
||||||
if (currentActivity is Idle)
|
if (currentActivity is Idle)
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ namespace OpenRA
|
|||||||
a( x );
|
a( x );
|
||||||
var dt = sw.ElapsedTime() - t;
|
var dt = sw.ElapsedTime() - t;
|
||||||
if( dt > time )
|
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)
|
if (DisableTick)
|
||||||
return;
|
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 =>
|
Queries.WithTraitMultiple<ITick>().DoTimed( x =>
|
||||||
{
|
{
|
||||||
x.Trait.Tick( x.Actor );
|
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();
|
Game.viewport.Tick();
|
||||||
while (frameEndActions.Count != 0)
|
while (frameEndActions.Count != 0)
|
||||||
frameEndActions.Dequeue()(this);
|
frameEndActions.Dequeue()(this);
|
||||||
|
|||||||
Reference in New Issue
Block a user