Stopwatch計時器 秒錶 C

2021-08-26 12:51:18 字數 1837 閱讀 9500

.net2.0也提供了這樣乙個秒錶:stopwatch類,它可以比較精確地測量時間。

速度測試:

軟體的效能和可測性是乙個複雜的主題。要確保應用程式能夠滿足使用者的期望,就需要在開發周期內考慮它的效能和可測性。這在設計階段至關重要,乙個糟糕的設計幾乎肯定會導致糟糕的使用者體驗。然而,僅僅有好的設計也不能保證程式能夠高效地執行,最終**的質量同樣重要。

量度乙個執行時間較長的例程相當簡單。如果乙個過程會持續幾分鐘,只要一塊腕表就可以記錄它的時間了。比如乙個執行時間為兩分鐘的過程,10%的改善能夠節省12秒,這是很容易去確定的。

而如果要測量乙個非常短暫的過程,就要考慮更好的精確性了。比如有一些很小的例程,它們的執行時間可能只有千分之一秒,但會被呼叫100萬次,這樣的累積效果就明顯了。在.net framework的先前版本中,需要使用windows api函式,而在.net framework 2.0中,微軟引入了stopwatch(它就是我們的秒錶)類來簡化時間的量度任務。

stopwatch類:

使用stopwatch類來量度時間非常簡單。跟現實生活中的秒錶一樣,這個類的物件也能夠對計數器進行開始、停止、歸零(重置)操作,不過它可比一般的秒錶精確多了,它能夠精確到微秒(也就是百萬分之一秒)。

示例**:

要演示stopwatch的使用還是來段**吧。下面是乙個控制台應用程式,它將1到100萬之間的所有整數累加:

using

system;

namespace

stopwatchclass}}

}新增stopwatch物件:

stopwatch類位於system.diagnostics命名空間。下面是新增物件後的**:

using

system;

usingsystem.diagnostics;

namespace

stopwatchclass}}

}控制stopwatch物件:

stopwatch提供了幾個方法用以控制stopwatch物件。start方法開始乙個計時操作,stop方法停止計時。此時如果第二次使用 start方法,將繼續計時,最終的計時結果為兩次計時的累加。為避免這種情況,在第二次計時前用reset方法將物件歸零。這三個方法都不需要引數。**是:

using

system;

using

system.diagnostics;

namespace

stopwatchclass

timer.stop();}}

}讀取stopwatch結果:

應當根據計時任務的情況選擇其中的乙個屬性。在我們的示例程式中,elapsed屬性提供了需要的精確度,用它來輸出經過的微秒數。這也是timespan的最高精確度了。

下面是最終的程式**:

using

system;

using

system.diagnostics;

namespace

stopwatchclass

timer.stop();

decimal micro = timer.elapsed.ticks /10m;

console.writeline(

"execution time was microseconds.

", micro);}}

}另外,使用isrunning屬性可以檢視乙個stopwatch例項是否正在計時,使用startnew方法可以開始乙個新的計時器。

Stopwatch計時器 秒錶 C

net2.0也提供了這樣乙個秒錶 stopwatch類,它可以比較精確地測量時間。速度測試 軟體的效能和可測性是乙個複雜的主題。要確保應用程式能夠滿足使用者的期望,就需要在開發周期內考慮它的效能和可測性。這在設計階段至關重要,乙個糟糕的設計幾乎肯定會導致糟糕的使用者體驗。然而,僅僅有好的設計也不能保...

計時器之StopWatch

stopwatch是org.springframework.util包下的乙個工具類,通過它可方便的對程式執行時間進行統計。public class stopwatchtest 控制台輸出 stopwatch running time 10659200 ns ns task name 0033535...

StopWatch 秒錶 實現計時

統計某段 的執行時間 還在用如下 麼,out了,醜陋不醜陋 long start system.currenttimemillis new random 耗時操作 long end system.currenttimemillis system.out.println end start sprin...