ブログの説明
パソコンやアンドロイドなどの情報を収集しまとめているブログです。

記事内に張られている画像はクリックすると見やすいサイズの画像が表示されるようになっています。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
アクセスカウンター
検索フォーム
カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

マルチメディアタイマー

スタートアップタイマーclock関数の精度が低いのでもっと精度が高く時間が測れるを探してる人は多いと思います。
そこで、私が普段使っているタイマーのことを書いておきます。
Windowsにはマルチメディアようにマルチメディアタイマーというタイマーがあるようです。
精度は1msから設定できなかなか高精度な様です。
ちなみに以前の記事「SSDデフラグで起動時間に効果はあるか」で使用したOSの起動時間を計測するプログラムはこれを使って作成しました。

【戻り値】
unsigned long型で、OSが起動したときからの時間になってます。
起動時間を測るときなんかに便利ですね。
【使い方】

#include<windows.h>
#include<mmsystem.h>
#pragma comment( lib, "winmm.lib")
使い方はそんなに難しくなく、windows.hとmmsystem.hをインクルードし、winmm.libをリンクします。
timeBeginPeriod( 1 );  //タイマーの精度を設定
timeA = timeGetTime(); //時間取得
timeEndPeriod( 1 );    //timeBeginPeriodで指定した値を引数に入れる
timeBeginPeriod()で精度を設定し、timeGetTime()で時間を取得します。
最後にtimeEndPeriod()で設定した数値を引数で渡すだけです。
  
////マルチメディアタイマー
#include<iostream>
using namespace std;
#include<windows.h>
#include<mmsystem.h>
#pragma comment( lib, "winmm.lib")
int main()
{
	unsigned long timeA,timeB;
	timeBeginPeriod( 1 );//タイマーの精度を設定
	timeB = timeGetTime();//時間取得
	
	//時間を測りたい処理を記述
	Sleep(50);

	timeA = timeGetTime();
	cout << timeA - timeB << endl;

	timeEndPeriod( 1 );//timeBeginPeriodで指定した値を引数に入れる
	return 0;
}

COMMENT

EDIT COMMENT

非公開コメント

最新トラックバック
ブロとも申請フォーム
QLOOKアクセス解析
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。