2017-08-13 14 views
2

実行可能ファイルのメモリ使用量と実行時間を測定する必要があります。バッチファイルまたはコードスニペットを作成します。また、オンラインジャッジと同様に、プロセスを完全に自動化したいので、測定する必要があるたびにタスクマネージャを開いたり、元のソースファイルに追加の行を挿入したりする必要はありません。任意のWindows実行ファイルのメモリ使用量と実行時間の測定

Used: 0.015s, 3092K 

#include <cstdio> 

int main() 
{ 
    printf("%d", 1 + 2); 
} 

そして、この特定のa.exeの実行時間とメモリ使用量を測定し、バッチのようなものを作る必要があります:私は実行可能a.exeに、この特定のC++ソースをコンパイルする場合たとえば

私は数時間にわたってStackOverflowで調査しましたが、結果はUNIXバイナリまたはソースに埋め込むためのコード行のいずれかです。

事前に感謝します。

+0

から抜粋つまずいたようそれ以外は変えないで!あなたのソリューションは、追加された機能と一緒に実行されるいくつかのコードを作成することです。それは研究し、まとめようとするあなたの仕事です。ここでは、コードを設計して作成しないようにするためのコードの問題についてお手伝いします。 – Compo

答えて

2

マイクロソフトでは、すでに(GetProcessMemoryInfo)何かがあります。 MSが提供するサンプルコードは、実行中のすべてのプロセスのメモリ使用量を一覧表示します。ただし、プログラムのハンドルを指定することで変更できます。

ドキュメント: https://msdn.microsoft.com/en-us/library/windows/desktop/ms683219(v=vs.85).aspx

例コード: https://msdn.microsoft.com/en-us/library/windows/desktop/ms682050(v=vs.85).aspx

時間のために、私は、あなたはあなたのコードが何かをしたい別の質問(Easily measure elapsed time

#include <ctime> 

void f() { 
    using namespace std; 
    clock_t begin = clock(); 

    //run a.exe 

    clock_t end = clock(); 
    double elapsed_secs = double(end - begin)/CLOCKS_PER_SEC; 
} 
+0

私が言ったように、私は元のコードに行を挿入したくありません。 –

+1

私はここで何か間違っていると思います。私が与えた両方の例はあなたのプログラムから独立して実行することができます。最初にa.exeが実行されているときのメモリ使用量を確認します。 2番目のプログラムはa.exeを実行してランタイムを測定します。それらをどのように組み合わせるかはあなた次第です;) – KonaeAkira

関連する問題