- ベストアンサー
プログラムの実行時間
Cで書いたのプログラムの時間を測りたいのですが、 何か良い方法はありますか?? 調べたところclock関数というのがあるそうですが「処理系の最良の近似で返す」ってどうなんだろうと思って聞いてみました。 何が必要か良くわからないのですが、Windouws XPでコンパイラはBorland C++を使っています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連するQ&A
- プログラムの実行時間計測方法について
プログラムの実行時間の計測方法について、質問します。 以下に示すプログラムは、パケットが受信される度にmessage関数が呼び出され、message関数内で受信したパケットをfwrite関数を用いて処理をしています。 [質問内容] clock関数のclock_t型を用いて、プログラムの実行時間を計測したいと思っています。しかし、以下に示すプログラムの場合、パケットが受信されるたびにmessage関数が呼び出され、かつパケットが受信される度にstart = clock()で0秒からの開始になってしまいます。 なにか、対策方法はあるのでしょうか? よろしくお願いします。 [プログラム] void main(int argc, char** argv){ //パケットが受信される度にmessage関数が呼ばれる。 message(); } void message(){ double time; clock_t start,finish; if(equals(msg->selector,(byte*)"test",strlen("test"))){ start = clock(); fwrite(msg->payload,msg->payload_length,1,fp); finish = clock(); time = (double)(finish - start)/1000.0; printf("データ送信時間:%f[sec]\n",time); } else if(equals(msg->selector,(byte*)"finish",strlen("finish"))){ done = D_TRUE; } }
- ベストアンサー
- C・C++・C#
- プログラムの実行がうまくいかない。
下記のアドレスのプログラムを実行したら、 http://www.winsock2.org./samples/Ch05/Ping/Ping.c 「Usage:ping hostname」 と表示されてうまくいきません。 プログラム内のどこか変える必要があるのでしょうか? お願いします。m(__)m OSはWindows XPでコンパイラは、ボーランドのフリーコンパイラを使用しています。
- ベストアンサー
- C・C++・C#
- C言語でプロセスを処理するプログラムを考えています。
C言語でプロセスを処理するプログラムを考えています。 popenを使ってプロセスを起動しようとしたですが、popenが未定義の関数とエラーが出てコンパイルできません。 ヘッダにstdio.hはおいてあります。 コンパイラはborlandを使用しています。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- 一定周期実行プログラム
UNIX環境での、プログラムを一定周期実行させるプログラミング方法についてご教授下さい。 例えば、50msの周期で、無限ループするプログラムです。 while(1) { t1=clock(); (処理1); t2=clock(); passtime=(t2-t1)/CLOCKS_PER_SEC; time=0.05-passtime; tmp=(int)(1000000*time); usleep(tmp); } まず、思い付いたプログラムは、処理1に掛かった時間を計算し、50msから処理に掛かった時間を引いた時間をsleepで待たせるプログラムです。clock()は精度が低いようですが・・・他に何かいい方法はないでしょうか?
- ベストアンサー
- C・C++・C#
- バックグラウンドで実行されるプログラムを作るには?
バックグラウンドで実行されるプログラムを作るにはどうすればよいのですか? あと自分自身へのリンクを自動で作成するにはどうすればいいのですか? win xp borland c++です。
- ベストアンサー
- C・C++・C#
- プログラムの実行を中断
標準ライブラリにプログラムを指定した時間だけ停止する、というような関数はあるでしょうか? 自分でも似たような関数を作ったのですが、負荷が大きいらしく動作が指定した時間よりも遅れてしまうことがあります。 #include <ctime> void sleep(int time) { tm *present; time_t clock; int begin; time(&clock); present=localtime(&clock); begin=present->tm_sec while(begin!=present->tm_sec-time){ time(&clock); present=localtime(&clock); } return; }
- ベストアンサー
- C・C++・C#
- C++プログラムにおけるexeファイルサイズ
borland C++でプログラムを記述し、コンパイルするとexeファイルサイズがソースのそれの約100倍に増えます。 これを低減する方法を教示ください? gcc、g++、vccなど各種コンパイラによって異なるそうですが。
- 締切済み
- C・C++・C#
- windowsプログラムのヘッダーについて
SDKを用いてWindowsプログラムを作っています。 #include <ctime> とインクルードした上でclock()関数を使用したのですが、コンパイラから未定義の関数を呼び出したことになってエラーが出てしまいます。他のヘッダーも含めC++の標準ライブラリはインクルードできないのでしょうか? ちなみに、<time.h>でインクルードすればコンパイルできます。
- ベストアンサー
- C・C++・C#
- プログラム領域の算出方法
現在C言語でプログラミングの勉強(設計含む)をしているのですが、設計書の記載項目に「プログラム領域」「ヒープ領域」「スタック領域」の算出を関数ごとに行うというような記述がありました。 動的メモリ領域・スタック領域の算出方法は何とか調べたのですが、「プログラム領域」の算出方法がわかりません! 出来れば 1.プログラム全体のプログラム領域の算出方法 2.関数ごとのプログラム領域の算出方法 を教えて頂けないでしょうか? 勉強している環境 OS:WindowsXP コンパイラ:Borland C++ Compiler 5.5 よろしくお願い致します。
- 締切済み
- C・C++・C#
- プログラムがうまく実行できません。
下にソースを載せたのですが、このプログラムがうまく実行できません。 OSはWin XPでコンパイラはボーランドのフリーコンパイラを利用しています。 #include<stdio.h> #include<math.h> int main() { double a,b,c,d,e,p; a=-1.43; b=1.43; c=-4.29; d=1.72; e=2.43; fot (p=0; p<1; p=p+0.0001){ printf("(%1.5f*pow(p,2)+%1.5f)/(%1.5%f*pow(p,2)+%1.5f*p+%1.5f,\n",a,b,c,d,e); } return 0; } (変えたい内容) pの値が0<p<1の範囲で、0.0001から0.0001ずつ増して行き、0.9999まで繰り返し処理して、1回ずつの値を出力したいのですが、うまくいきません。
- ベストアンサー
- C・C++・C#
お礼
大丈夫なんですねっ! clock関数をも使うことが出来ました。 ありがとうございます(^_^)