我推薦你在這裏做的是通過Stopwatch.StartNew
創建一個Stopwatch
的實例,執行你的方法或你想要計算執行時間的代碼。停在那裏,你認爲你的方法應該與執行進行了Stopwatch
,然後得到ElapsedMilliseconds
像我將在下面的代碼做:
@{
Stopwatch stopwatch = Stopwatch.StartNew();
for (int i = 0; i < 1000000; i++)
{
if (i % 100000 == 0)
{
@Html.Raw("<p>" + i.ToString() + "</p> <br />");
}
}
stopwatch.Stop();
@Html.Raw("<p>Elapsed time is: " + stopwatch.ElapsedMilliseconds.ToString() + "</p>");
}
並請,如果當你試圖執行這一點,你可能會得到一個錯誤代碼,請確保你已經包括System.Diagnostics;
PS。如果你不喜歡stopwatch.ElapsedMilliseconds
你可能還需要檢查stopwatch.Elapsed
顯示經過時間..
,我可以說你想開始時間亞歷山大的評論後見,結束時間等,我建議你在這裏做我通過繼承System.Diagnostics.Stopwatch
類並使用幾個DateTime屬性擴展它來創建自定義秒錶。
現在我會告訴你,你會怎麼做:
public class MyCustomStopWatch : Stopwatch
{
public DateTime? StartAt { get; private set; }
public DateTime? EndAt { get; private set; }
public void Reset()
{
StartAt = null;
EndAt = null;
base.Reset();
}
public void Restart()
{
StartAt = DateTime.Now;
EndAt = null;
base.Restart();
}
//This is what is important to you right now, to get data about that when you code started, and when your code finished with executing
public void Start()
{
StartAt = DateTime.Now;
base.Start();
}
public void Stop()
{
EndAt = DateTime.Now;
base.Stop();
}
}
如果你想知道我如何使用這些代碼?
不要擔心,下面是一個例子根據您的問題:
@{
MyCustomStopwatch stopwatch = MyCustomStopwatch();
for (int i = 0; i < 1000000; i++)
{
if (i % 100000 == 0)
{
@Html.Raw("<p>" + i.ToString() + "</p> <br />");
}
}
stopwatch.Stop();
@Html.Raw(String.Format("<p>Stopwatch elapsed: {0}, StartAt: {1}, EndAt: {2} </p>", stopwatch.ElapsedMilliseconds.ToString(), stopwatch.StartAt.Value.ToString(), stopwatch.EndAt.Value.ToString());
}
無論我希望你趕上了點,我希望這有助於你解決你的問題
請記住,DateTime的分辨率並不高。 – jAC
等待不在編譯或者你沒有看到它在屏幕上?另外,讓我修復你在循環中的@語句。 –
Html.Raw在這段代碼中沒有執行,我不知道爲什麼,TimeSpan也給出了一個對象引用的錯誤,需要爲非靜態字段,方法或屬性 –