2010-04-15T00:34:22の更新内容

programming/netfx2/System.Diagnostics.Stopwatch/index.wiki.txt

current previous
15,7 15,6
 
:void Start()|計測を開始する。
:void Start()|計測を開始する。
 
:void Stop()|計測を停止する。
:void Stop()|計測を停止する。
 
:void Reset()|計上した経過時間をリセットする。
:void Reset()|計上した経過時間をリセットする。
+
:static Stopwatch StartNew()|Stopwatchのインスタンスを作成するのと同時に、計測を開始する。
 
:static long GetTimestamp()|現在のタイマ刻み数(タイマの持つ分解能で計測出来る時間間隔を計測した回数)を取得する。
:static long GetTimestamp()|現在のタイマ刻み数(タイマの持つ分解能で計測出来る時間間隔を計測した回数)を取得する。
 

                

                
 
*主なプロパティ
*主なプロパティ
26,16 25,10
 
:ElapsedTicks (long)|計測を開始してから終了するまでの時間経過の累積値をタイマ刻み数単位で表す。
:ElapsedTicks (long)|計測を開始してから終了するまでの時間経過の累積値をタイマ刻み数単位で表す。
 

                

                
 
*主な呼び出し順序
*主な呼び出し順序
~
+new Stopwatch()
-new Stopwatch()
~
+Start()
-Start()
~
+Stop()
-Stop()
~
+Reset()
-Reset()
+

                  
+
もしくは
+

                  
+
+StartNew()
+
+Stop()
+
+Reset()
 

                

                
 
*使用例
*使用例
 
1秒スリープする前後のタイムスタンプと実際の経過時間を計測する。
1秒スリープする前後のタイムスタンプと実際の経過時間を計測する。
51,6 44,11
 
{
{
 
  public static void Main()
  public static void Main()
 
  {
  {
-
    ( new StopwatchSample() ).Run();
-
  }
-
    
-
  private void Run()
-
  {
 
    // Stopwatchの能力を表示
    // Stopwatchの能力を表示
 
    Console.WriteLine( "Stopwatch.Frequency: {0}MHz", Stopwatch.Frequency / 1000000 );
    Console.WriteLine( "Stopwatch.Frequency: {0}MHz", Stopwatch.Frequency / 1000000 );
 
    Console.WriteLine( "Stopwatch.IsHighResolution: {0}", Stopwatch.IsHighResolution );
    Console.WriteLine( "Stopwatch.IsHighResolution: {0}", Stopwatch.IsHighResolution );
102,56 100,23
 
Elapsed ticks: 3579056
Elapsed ticks: 3579056
 
}}
}}
 

                

                
~
#prompt(Ubuntu 9.10(Mono 2.7)上で実行した例){{
#prompt(Ubuntu 7.04(Mono 1.2.3.1)上で実行した例){{
 
Stopwatch.Frequency: 10MHz
Stopwatch.Frequency: 10MHz
~
Stopwatch.IsHighResolution: True
Stopwatch.IsHighResolution: False
 
Test#0
Test#0
~
Timestamp(before): 2359336605891
Timestamp(before): 633181514697749840
~
Timestamp(after): 2359346610670
Timestamp(after): 633181514707992050
~
Elapsed milliseconds: 1000
Elapsed milliseconds: 1011
~
Elapsed ticks: 10003551
Elapsed ticks: 10112070
 
Test#1
Test#1
~
Timestamp(before): 2359346614248
Timestamp(before): 633181514708205570
~
Timestamp(after): 2359356615817
Timestamp(after): 633181514718343850
~
Elapsed milliseconds: 1000
Elapsed milliseconds: 1010
~
Elapsed ticks: 10001479
Elapsed ticks: 10103170
 
Test#2
Test#2
~
Timestamp(before): 2359356616492
Timestamp(before): 633181514718432470
~
Timestamp(after): 2359366617684
Timestamp(after): 633181514728583750
~
Elapsed milliseconds: 1000
Elapsed milliseconds: 1007
~
Elapsed ticks: 10001077
Elapsed ticks: 10076030
+
}}
+

                  
+
StartNewメソッドを使用するとより簡単に記述できる。
+
#code(cs){{
+
using System;
+
using System.Diagnostics;
+
using System.Threading;
+

                  
+
public class StopwatchSample
+
{
+
  public static void Main()
+
  {
+
    // 3回試行
+
    for ( int count = 0; count < 3; count++ )
+
    {
+
      Console.WriteLine( "Test#{0}", count );
+

                  
+
      Console.WriteLine( "Timestamp(before): {0}", Stopwatch.GetTimestamp() );
+

                  
+
      Stopwatch watch = Stopwatch.StartNew();
+

                  
+
      // 1秒スリープする
+
      Thread.Sleep( 1000 );
+

                  
+
      watch.Stop();
+

                  
+
      Console.WriteLine( "Timestamp(after): {0}", Stopwatch.GetTimestamp() );
+

                  
+
      Console.WriteLine( "Elapsed milliseconds: {0}", watch.ElapsedMilliseconds );
+
      Console.WriteLine( "Elapsed ticks: {0}", watch.ElapsedTicks );
+
    }
+
  }
+
}
 
}}
}}