2016-04-15 6 views
0

だから、私は私が入れた時計機能がプログラムがどのくらい早く完了したかを見つけるには?

#include <iostream> 
#include <graphics.h> 
#include <conio.h> 
#include <time.h> 

using namespace std; 

int opt, x1 = 50, y1 =50, x2 = 50, y2=200; 
int xt, yt; 
int dx; 
int dy; 
int i; 
int j; 
int up; 

int gd = DETECT, gm; 

int main() 
{ 
    clock_t exe, exe2; 
    exe = clock(); 

    dx=(x2-x1); 
    dy=(y2-y1); 

    if(dx > dy) 
     up=dx; 
    else 
     up=dy; 

    float xi=(x2-x1)/up; 
    float yi=(y2-y1)/up; 

    int x=x1; 
    int y=y1; 
    int xt=x1; 
    int yt=y1; 

    initgraph(&gd, &gm, "C:\\TC\\BGI"); 

    putpixel(x,y, 15); 

    for(j=1;j<=500;j++) 
    { 
     for(i=1;i<=up;i++) 
     { 

      x += xi; 
      y += yi; 
      putpixel(abs(x),abs(y), 15); 

     } 
     x = xt; 
     y=yt; 
    } 
    getch(); 
    closegraph(); 
    exe2 = clock(); 
    float diff = ((float)exe2 - (float)exe); 
    cout << "The time: " << diff << endl; 
    system("pause"); 
    return 0; 
} 

ラインをプリントアウトすることができないようですどのくらい速いプログラムの仕上げが、それはだフィンにしたい、DDAアルゴリズムで線を描画するためのC++のプログラムを作りましたグラフィックウィンドウに表示されますが、グラフィックウィンドウを閉じると、プログラムはdiffの結果を表示せずに停止します

+1

外部ライブラリに依存するコードを削除し、グローバル変数をローカルに定義しました(グローバルに必要な理由はわかりません)、VC2015を使用してコードをコンパイルしました。結果として得られるプログラムは、使用されたプロセッサ時間を正しく表示します。これは本当にあなたが使ったコードですか? graphics.hの使用に関しては、あなたは[この質問](http://stackoverflow.com/questions/7860569/how-i-can-get-and-use-the-header-developers.html)を見たいかもしれません。 –

+4

私はこのプログラムで古くからの1980年代のDOSのナンセンスを数え始めましたが、結局はあきらめました。 –

答えて

0

次のように試してみてください。
system("pause");で実行が一時停止しない場合は、cin >> xのようなキーボードから何かを試してみてください。

#include <time.h> 
#include <stdio.h> 

time_t start,end; 
time (&start); 
. 
. 
. 
<your code> 
. 
. 
. 
time (&end); 
double dif = difftime (end,start); 
printf ("Elasped time is %.2lf.", dif); 
0

これも(プロファイリング)には多くの方法があります。 しかし、あなたが基本的な方法たいようだ:私はウィンドウ上じゃないので、私はわからないんだけど、私はすべてのCERRのメッセージは、Visual Studioコンソールの内側にとどまるだろうと思い

std::cerr << "Diff : " << diff << std::endl; 

を。

GUIアプリケーションのトレースを保持するもう少し一般的な方法は、ログシステムです。 最も簡単な形式:必要なものをログファイル(テキストファイル)に書き込む。しかし、アプリケーション全体の時間のために、ファイルを開く余分な時間があります。いつか場合は、複雑なプログラムにいくつかのプロファイリングを行うにしよう:wiki

0

またはファイルに標準出力を指示できます。プロファイラを使用して

freopen("myfile.log", "w", stdout); 

も決定することができ


PSが

あなたのプログラムのスピード。

関連する問題