[英]Is it possible to calculate the execution time of a method in C# with attributes?
是否有C#屬性(用於方法)來計算此方法的執行時間? 還有另外一種方法嗎?
您可以使用面向方面編程來執行此操作。 從PostSharp看這個例子: http : //www.sharpcrafters.com/solutions/performance
這里的技巧是定義在編譯時注入代碼的行為。 一個用例是為您需要的方法添加時序。
還有其他方法:您可以使用VS Profiler來檢查執行特定方法的次數和時長。
或者您可以使用屬性來分析性能的第三方庫,請參閱此相關主題什么是一些好的.NET Profilers?
您可以使用Timer
,在函數調用之前啟動它,然后在方法完成后停止它。 然后以更好的形式輸出時間!
要么
如果您不想編寫手動代碼,請查看Visual Studio Profilers或SO - Best Profilers 。
如果您想編寫一些測試代碼來分析各種函數或其中的部分,您可以使用System.Diagnostics.Stopwatch來跟蹤已用時間。 像這樣:
public void DoSomething(){
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
//stuff you want to time
stopWatch.Stop();
System.Console.Writeln(String.Format("Total Ticks: {0}", stopWatch.ElapsedTicks))
}
如果你想做更普遍的事情(即計算程序的哪些部分很慢),那么使用像其他一些答案建議的分析器。
像這樣的東西:
var oldTime = DateTime.Now;
//your code here
var resultTimeSpan = DateTime.Now - oldTime;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.