2017-06-30 23 views
1

Visual StudioでCプログラムのCPU使用率を記録します。パフォーマンスプロファイルの使用私のCプログラムのCPU使用量のグラフ表示を見ることができます。しかし、私は何をすべきか、既存のコードにどのようなコードを追加して、1秒間に自分のプログラムのCPU使用量をテキストファイルかExcelファイルに記録できるようにする必要があります。Visual StudioでCPU使用率をログに記録する

+0

の可能性のある重複(https://stackoverflow.com/questions/ 63166/how-to-determined-cpu-and-memory-consum-from-processから) – weeska

+0

私の質問は、CPU使用量をExcelファイルやテキストファイルに記録する方法です。それは@weeska –

+0

AI参照 - それは私には分かりませんでした。申し訳ありません – weeska

答えて

2

おそらく最も簡単なことは、プロセスの現在のCPU使用率を取得し、ファイルに書き出し、1秒間スリープして、繰り返すために、GetProcessTimesを使用するスレッドを作成することでしょう。その後、(例えば)を終了することを指示する信号を設定することができます[?プロセス内からCPUとメモリ消費量を決定する方法]

FILETIME creation, done, kernel, user; 
int PID; 

std::atomic<bool> finished = false; 

std::thread logger([&] { 
    printf("seconds\n"); 
    while (!finished) { 
     GetProcessTimes(GetCurrentProcess(), &creation, &done, &kernel, &user); 

     SYSTEMTIME used_k, used_u; 

     FileTimeToSystemTime(&kernel, &used_k); 
     FileTimeToSystemTime(&user, &used_u); 

     DWORD milliseconds = used_k.wMilliseconds + used_u.wMilliseconds; 
     DWORD seconds = used_k.wSecond + used_u.wSecond; 

     printf("%d.%3.3d\n", seconds, milliseconds); 
     Sleep(1000); 
    } 
}); 

// Do work to be timed/logged here 

finished = true; 
logger.join(); 
+0

ok ..私は何とか毎秒私のプログラムのCPU使用量を得ることができました。しかし、コンソール出力がcsvファイルに書き込まれるようなコードを追加した場合、プログラムは例外をスローします。これは、整数の除算が0であるということです。どうすればいいですか? @Jerry Coffin –

+1

@JessieBunny:私のクリスタルボールは、42行目にエラーがあると伝えます。真剣に:その記述に基づいてあなたのコードを本当に診断することはできません。私はあなたのコードをデバッグする必要があると思います。 –

関連する問題