C言語 - VC++ - GetTickCount

クラウディア 
1. 概要
2. 起動からの時間

1. 概要

 「GetTickCount」は、厳密にいえば、「VC++」というよりは、「Win32API」なのですが、わたしは、「VC++」の時に使用していましたのでね。  本ページは、下記のサイトを参考にさせていただきました。
C言語/C++ 処理時間計測 入門」
「24.9日 ‐ 通信用語の基礎知識

2. 起動からの時間

 参考サイトにあるように、これは、システムの起動開始からの時間を、ミリ秒単位で取得するものです。  単位は、ミリ秒ですが、精度はせいぜい 10 msec くらいのものではあります。  絶対時刻ではなく、相対時間なので、ある地点からある地点までの処理時間を調べるのに便利です。  わたしは、下記のような形式で使用しています。

	int	tick = GetTickCount();													//// 時間計測用 tick カウント

	・・・なんかしら処理を書きます。

	int all = GetTickCount() - tick;

	CString str;
	str.Format("処理時間[%02d:%02d:%02d.%03d]", all/(60*60*1000), (all%(60*60*1000))/(60*1000), (all%(60*1000))/1000, all % 1000);

	str をログなり、コンソールなりに出力します。
 注意すべきなのは、32 ビット値である場合、「0x7FFFFFFF」でオーバフローしてしまいます。  ミリ秒単位なので、参考サイトによれば、24.9日以上になると、オーバフローしてしまいますので、システム起動後から、その時間が経過するとリセットしないと誤ってしまいます。