GetTickCount64

GetTickCount64() 関数はシステムが起動してからの経過時間をミリ秒数で返します。

ulong  GetTickCount64();

戻り値

ulong型の値。

注意事項

カウンタはシステムタイマーの精度に制限され、通常は10〜16ミリ秒の精度で結果が返されます。uint型であって、コンピュータが継続して操作された場合には49.7日ごとに内容がオーバーフローするGetTickCountとは異なり、GetTickCount64()は、オーバーフローの影響を受けず、コンピュータ操作時間は無制限です。

例:

#define MAX_SIZE 40
 
//+------------------------------------------------------------------+
//| 40フィボナッチ数の計算時間を測定するためのスクリプト                            |
//+------------------------------------------------------------------+
void OnStart()
 {
  long fib_array[MAX_SIZE];
 
//--- 初期値を収納する
  ulong start=GetTickCount64();
//--- フィボナッチ数列から指定された数の数値を計算するループ
  for(int i=0;i<MAX_SIZE;i++)
    fib_array[i]=TestFibo(i);
//--- かかった時間をミリ秒単位で取得する
  ulong time=GetTickCount64()-start;
 
//--- エキスパート操作ログでエラーメッセージを表示する
  ArrayPrint(fib_array);
  PrintFormat("Calculating the first %d Fibonacci numbers took %I64u ms",MAX_SIZE,time);
 }
//+------------------------------------------------------------------+
//| フィボナッチ数をシリアル番号で取得するための関数                              |
//+------------------------------------------------------------------+
long TestFibo(long n)
 {
//--- フィボナッチ数列の最初のメンバ
  if(n<2)
    return(1);
//--- 続く全てのメンバは、以下の式で計算される
  return(TestFibo(n-2)+TestFibo(n-1));
 }

参照

日付と時刻EventSetMillisecondTimerGetTickCountGetMicrosecondCount