C++Builder2010から導入されたDiagnostics.TStopwatchを使うと、処理時間を正確に計測することができます。
#include <iostream>
#include "Diagnostics.hpp"
std::locale::global(std::locale("japanese"));
TStopwatch sw = TStopwatch::StartNew();
Sleep(1000);
sw.Stop();
// ミリ秒単位で出力
std::cout << sw.ElapsedMilliseconds << std::endl;
// TimeSpan構造体で書式付き表示
TTimeSpan ts = sw.Elapsed;
UnicodeString s = ts; // C++Builder2010ではリンクエラーになる。C++Builder XEならOK
std::wcout << s.c_str() << std::endl;
実行結果
1000
00:00:01.0002933
TStopwatch::StartNew()はストップウォッチを作成して実行します。
すぐに実行しない場合は、TStopwatch::Create()を使用します。
TStopwatch sw = TStopwatch::Create();
sw.Start(); //ストップウォッチを実行
Sleep(1000);
sw.Stop();
Elapsedプロパティは経過時間を示します。
ElapsedMillisecondsプロパティはミリ秒単位で経過時間を示します。