- COMポートの文字を送ってから5指ロボットがグーやチョキを出すまでの時間
- 判定からCOMポートに文字を送るまでの時間
- 遊んでる時間があったらまじめに実習する(笑い)
マシンにはあまい負荷をかけたくない。
2の方の対策
- 新しい構成のパソコンを買う
- 画面の表示を極力無くす
- コンソールの出力を極力無くす
- タスクマネージャでCPU時間、メモリを使っているアプリケーションを止める
- なんかあるかな?
考察する場合は、タスクマネージャ、時間を計測する
タスクマネージャはCPU時間を降順にならべるとか、I/Oも結構負担がかかるのでこれも見るといい。
時間の計測はソースコードに時間を測れるように書き込む。
Win32 APIのGetTickCount関数を使った例
#include<stdio.h>
#include<windows.h>
int
main (void)
{
DWORD start;
for (int i = 0; i < 50; ++i)
{
start = GetTickCount ();
Sleep (100);//本来ここに処理コードをはさむ。ここではSleepでごまかす
printf ("%dms,", GetTickCount () - start);
}
return 0;
}
C:\usr\opencv\C_C++の練習\gettickcount>cl main.cpp
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
main.cpp
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:main.exe
main.obj
C:\usr\opencv\C_C++の練習\gettickcount>main
93ms,94ms,109ms,94ms,110ms,93ms,110ms,93ms,94ms,110ms,93ms,110ms,93ms,110ms,94ms,109ms,94m
s,93ms,110ms,94ms,109ms,94ms,109ms,94ms,94ms,109ms,94ms,109ms,94ms,109ms,94ms,109ms,94ms,9
4ms,109ms,94ms,109ms,94ms,109ms,94ms,94ms,109ms,94ms,109ms,94ms,110ms,93ms,110ms,93ms,94ms
,
C:\usr\opencv\C_C++の練習\gettickcount>
Sleep自体は結構めちゃくちゃにスリープしている?CetTickCountの方が正しい?1ms単位で計測はできそう。
timeGetTimeもある。この方が正確だそうだ。
コンパイル時にwinmm.libが必要だ。上のコードのGetTickCountをtimeGetTimeに書き換えて実行してみる。
C:\usr\opencv\C_C++の練習\gettickcount>cl main.cpp winmm.lib
Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.30729.01 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
main.cpp
Microsoft (R) Incremental Linker Version 9.00.30729.01
Copyright (C) Microsoft Corporation. All rights reserved.
/out:main.exe
main.obj
winmm.lib
C:\usr\opencv\C_C++の練習\gettickcount>main
101ms,101ms,100ms,101ms,100ms,101ms,101ms,100ms,101ms,100ms,101ms,100ms,101ms,101ms,100ms,
101ms,100ms,101ms,101ms,100ms,101ms,100ms,101ms,101ms,100ms,101ms,100ms,101ms,100ms,101ms,
101ms,100ms,101ms,100ms,101ms,101ms,100ms,101ms,100ms,101ms,100ms,101ms,101ms,100ms,101ms,
100ms,101ms,101ms,100ms,101ms,
C:\usr\opencv\C_C++の練習\gettickcount>
Sleepはあいかわらずだが、1ms程度の誤差。やはりこちらが正確だ。でも今回は1msを競う状況ではないのでどちらでもいい。
「今日の訪問数: - 」
「昨日の訪問数: - 」
「今までの訪問数: - 」
最終更新:2010年02月11日 16:25