プロが教えるわが家の防犯対策術!

今 私は MFC VC++ 6.0 を使用しています。

CModel::OnDraw(CDC *pDC)
{
(略)

(ここから)
for(int i=0;i<500000;i++){
なんらかの アルゴリズム
}

(ここまで)

(略)

}

上記に示した (ここから) (ここまで)に ドレくらい時間がかかっているか 時間を 計りたいのです。 かかったじかんを
pDC->TextOut(・・・・・)

と 画面に 表示させたいのですが、どうすればいいでしょうか?

参考書には 今の 時間(4時12分) などの現在の時刻を 表示させるものは 結構のってるのですが、私は 時刻ではなく for文を処理している 時間を しりたいのです。よければ 教えてください。

A 回答 (5件)

開始 時間(4時12分)


終了 時間(4時33分)

などと、開始した時間、終了した時刻を表示すれば計算できませんか?
上を引き算して、

for文を処理している 時間 21 分

などとしても良いと思いますが。
    • good
    • 0

A=時刻のシリアル値


(作業)
B=時刻のシリアル値

実行時間=B-A
    • good
    • 0

プログラム開発時に速度が問題になる場合、プログラムのどの部分で時間がかかっているのかを分析し、最も時間がかかっている部分を最適化するという手順をとるのが普通です。

このような用途に使用するツールのことを「プロファイラ」と呼びます。

MicrosoftのVC++にはわりとよくできたプロファイラが付属していますので、自分で書いたコードに手を入れることなく、問題となっている部分を割り出すことが可能です。

具体的な手順については参考URLをご確認ください。

参考URL:http://icp.hicorp.co.jp/letter/p_mame_c30820.html
    • good
    • 0

時間差を計算する専用のクラス CTimeSpan を使ってみてください。

開始前と終了後の時刻を入れるだけで望みの形式で出力することができるでしょう。
    • good
    • 0

わたしはGetTickCount()の関数は使ったことありませんが。



DWORD tStart = GetTickCount();

for(int i=0;i<500000;i++){
なんらかの アルゴリズム
}

// 処理にかかった時間(msec)
DWORD tElapsed = GetTickCount() - tStart;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!