fix(core): Caches DateTime.NowUtc (#548)

- [X] Caches DateTime.NowUtc on the game loop (not other threads)
- [X] Replaces all locations where it makes sense
- [X] Adds Min/Max for `IComparable` (TimeSpan, DateTimes, etc)

Closes #261
This commit is contained in:
Kamron Batman 2021-03-13 01:32:04 -08:00 • committed by GitHub
parent 5de6edbeb8
commit 6c4308bce6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
208 changed files with 660 additions and 793 deletions

View file

@ -30,12 +30,11 @@ namespace Server.Commands
try
{
Output = new StreamWriter(Path.Combine(directory, $"{DateTime.UtcNow.ToLongDateString()}.log"), true);
Output = new StreamWriter(Path.Combine(directory, $"{Core.Now.ToLongDateString()}.log"), true);
Output.AutoFlush = true;
Output.WriteLine("##############################");
Output.WriteLine("Log started on {0}", DateTime.UtcNow);
Output.WriteLine("Log started on {0}", Core.Now);
Output.WriteLine();
}
catch
@ -71,7 +70,7 @@ namespace Server.Commands
try
{
Output.WriteLine("{0}: {1}: {2}", DateTime.UtcNow, from.NetState, text);
Output.WriteLine("{0}: {1}: {2}", Core.Now, from.NetState, text);
var path = Core.BaseDirectory;
@ -83,7 +82,7 @@ namespace Server.Commands
path = Path.Combine(path, $"{name}.log");
using var sw = new StreamWriter(path, true);
sw.WriteLine("{0}: {1}: {2}", DateTime.UtcNow, from.NetState, text);
sw.WriteLine("{0}: {1}: {2}", Core.Now, from.NetState, text);
}
catch
{

View file

@ -119,7 +119,7 @@ namespace Server.Commands
return;
}
var time = DateTime.UtcNow;
var time = Core.Now;
var built = BuildObjects(from, type, start, end, args, props, packs, outline, mapAvg);
@ -129,7 +129,7 @@ namespace Server.Commands
"{0} object{1} generated in {2:F1} seconds.",
built,
built != 1 ? "s" : "",
(DateTime.UtcNow - time).TotalSeconds
(Core.Now - time).TotalSeconds
);
}
else

View file

@ -25,7 +25,7 @@ namespace Server.Commands
try
{
using var sw = new StreamWriter("profiles.log", true);
sw.WriteLine("# Dump on {0:f}", DateTime.UtcNow);
sw.WriteLine("# Dump on {0:f}", Core.Now);
sw.WriteLine($"# Core profiling for {Core.ProfileTime}");
sw.WriteLine("# Packet send");
@ -114,7 +114,7 @@ namespace Server.Commands
items.Sort(new CountSorter());
mobiles.Sort(new CountSorter());
op.WriteLine("# Object count table generated on {0}", DateTime.UtcNow);
op.WriteLine("# Object count table generated on {0}", Core.Now);
op.WriteLine();
op.WriteLine();
@ -362,7 +362,7 @@ namespace Server.Commands
using var op = new StreamWriter(opFile);
op.WriteLine("# Profile of world {0}", type);
op.WriteLine("# Generated on {0}", DateTime.UtcNow);
op.WriteLine("# Generated on {0}", Core.Now);
op.WriteLine();
op.WriteLine();

View file

@ -13,7 +13,7 @@ namespace Server.Commands
[Usage("Time"), Description("Returns the server's local time.")]
private static void Time_OnCommand(CommandEventArgs e)
{
e.Mobile.SendMessage(DateTime.UtcNow.ToString(CultureInfo.InvariantCulture));
e.Mobile.SendMessage(Core.Now.ToString(CultureInfo.InvariantCulture));
}
}
}