討論區快速選單
知識庫快速選單
討論區最近新進100則主題 下載Alexa Toolbar讓你上網更有趣
[ 回上頁 ] [ 討論區發言規則 ]
請問c語言計算時間差的問題
更改我的閱讀文章字型大小
作者 : qqq3999(pp)
[ 貼文 36 | 人氣 6801 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/20 上午 01:01:15
我想計算一行程式的時間差
使用difftime的函式
但在dec c++執行程式
每次測的得時間差皆為0
我想請問一下為甚麼會這樣
是這個函式已不適用xp系統了嗎?還是有別的函式可代替此函式的功能呢?
/* DIFFTIME.C: this program calculates the amount of time
* needed to do a floating point multiply 10 million times.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main( void )
{
time_t start,finish;
long loop;
double result,elapsedtime;
printf( "Multiplying 2 floating point numbers 10 million times...\n" );
time( &start );
for( loop = 0; loop < 10000000; loop++ )
result = 3.63 * 5.27;
time( &finish );
elapsedtime = difftime( finish,start );
printf( "\nProgram takes %6.0f seconds.\n",elapsedtime );
system("pause");
}
作者 : argus(中年人)
[ 貼文 155 | 人氣 31 | 評價 450 | 評價/貼文 2.9 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/20 上午 10:51:58
請確認compiler的optimal optional是否有disable
否則for loop可能根本沒有code產生
如果你希望在optimal enable的情形下
程式碼確定要有效必須把變數
"double result"
改為
"volatile double result"
告訴compiler不要對result相關的statement
進行最佳化
作者 : clockwork(發條盒子) C++優秀好手貼文超過200則人氣指數超過70000點
[ 貼文 480 | 人氣 72923 | 評價 790 | 評價/貼文 1.65 | 送出評價 43 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/20 上午 11:02:11
你好計算程序跑了多少應該使用clock()這個time.h中的標準函式所以給你一個範例你參考看看

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

int main()
{
clock_t start, end;
long i = 100000000L;
start = clock();
while (i--);
end = clock();
double sec = (double)(end-start) / CLOCKS_PER_SEC;
printf("the execute while(i--) is %f sec\n", sec);
return 0;
}

CLOCKS_PER_SEC在time.h中有定義,它是要讓clock_t轉成second的一個除數,你說的使用time_t的time()我通常用在測一個事件的反應時間,就是等應外部輸入的時間。
作者 : qqq3999(pp)
[ 貼文 36 | 人氣 6801 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/7/20 下午 10:52:00
我有試過
我把for回圈改成printf("test");但測出來的情況還是一樣式零秒
所以我才想說如果用這個函式
到底是要怎麼使用才能測得執行時間
作者 : sula3065408(JonesLai)
[ 貼文 46 | 人氣 0 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2007/8/23 下午 03:37:43
#include <time.h>
#include <stdio.h>
#include <dos.h>

int main(void)
{
   clock_t start, end;
   start = clock();

   delay(2000);

   end = clock();
   printf("The time was: %f\n", (end - start) / CLK_TCK);

   return 0;
}
 板主 : simula
 > C++ - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - C++ - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
C++
1 Raymond 12600 
2 simula 4690 
3 青衫 4670 
4 coco 3900 
5 白老鼠(Gary) 3610 
6 Ben 2250 
7 ozzy 2010 
8 Anderson 1960 
9 windblown 1650 
10 Kenny 1540 
C++
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2014 程式設計俱樂部 http://www.programmer-club.com.tw/
0.15625