Skip to content

Commit 4712536

Browse files
committed
Additional Perf Logging
per Mod Performance
1 parent 5f17c4e commit 4712536

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

sources/SilkTouch/SilkTouch/SilkTouchGenerator.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,15 @@ public async Task RunAsync(
7272
var srcProj = ctx.SourceProject;
7373
var testProj = ctx.TestProject;
7474

75+
var modPerf = new Dictionary<IMod, Stopwatch>();
76+
7577
// Initialize the mods
7678
foreach (var jobMod in jobMods)
7779
{
7880
logger.LogDebug("Using mod {0} for {1}", jobMod.GetType().Name, key);
81+
modPerf.Add(jobMod, Stopwatch.StartNew());
7982
await jobMod.InitializeAsync(ctx, ct);
83+
modPerf[jobMod].Stop();
8084
if (ctx.SourceProject != srcProj || ctx.TestProject != testProj)
8185
{
8286
throw new InvalidOperationException(
@@ -88,12 +92,17 @@ public async Task RunAsync(
8892
foreach (var jobMod in jobMods)
8993
{
9094
logger.LogInformation("Executing {} for {}...", jobMod.GetType().Name, key);
95+
modPerf[jobMod].Start();
9196
await jobMod.ExecuteAsync(ctx, ct);
97+
modPerf[jobMod].Stop();
9298
}
9399

94100
// Manually dispose so that we don't do this when generation fails (await using is too clever).
95101
await ctx.DisposeAsync();
96102

103+
logger.LogInformation("Job Mod Performance Data for {} \n{}", key,
104+
string.Join("\n", modPerf.Select(kvp => $"{kvp.Key.GetType().Name} : {kvp.Value.Elapsed.TotalSeconds} seconds")));
105+
97106
// Output the generated bindings
98107
logger.LogInformation(
99108
"Bindings generation for {} completed in {} seconds.",

0 commit comments

Comments
 (0)