基准测试何时开始?

When the benchmark started?

class Program
{
    Stopwatch sw = new Stopwatch();
    DateTime date;

    public static void Main()
    {
        date = Datetime.Now;
        sw.Start();
        // do some work
        sw.Stop();
        Log(String.Format("App started on {0}, run time is {1}.", date, sw.ToRedableString()));
    }
}

有没有更好的方法让 Stopwatch 开始 date/time?我正在寻找类似 sw.GetStartDateTime().

的内容

只需从 DateTime.Now 中减去 sw.Elapsed 即可得到起点。

var sw = new Stopwatch();
sw.Start();
// do work
sw.Stop();
DateTime startDate = DateTime.Now.Subtract(sw.Elapsed);
Log(String.Format("App started on {0}, run time is {1}.", startDate, sw.Elapsed));

更好的方法是使用 DateTimes

DateTime start = DateTime.Now;
// doWork()
DateTime end = DateTime.Now;
Log(String.Format("App started at {0}, run time is {1}.", start, (end - start).toString("HH:mm:ss"));