MacOS、C、VirtualBox、およびTime.hを使用した誤った出力測定時間 -- c フィールド と time フィールド と virtualbox フィールド と macos-sierra フィールド と time.h フィールド 関連 問題

Wrong output measuring time with MacOS, C, VirtualBox and time.h












0
vote

問題

日本語

私はVirtualBoxを使ってパフォーマンス実験をしていますが、 clock()で測定しようとしている時間で非常に奇妙なことが起こっています。どういうわけかこの方法を通して出力は小さくなり、出力結果は time()(そして明らかに右側のもの)から出力されます。以下の結果がVMを実行することなく得られます。

<事前> <コード> #include <stdio.h> #include <time.h> int main() { clock_t start, end; double cpu_time_used; long int i = 0; time_t start_t = time(NULL); printf("%d ", start_t); start = clock(); while (i<1000000000){ if(i%100==0) printf("%d ", i); i++; } end = clock(); printf("Time spent: %g seconds (time) ", (double)(time(NULL)-start_t)); cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC; printf("Time spent: %g seconds (clock) ", cpu_time_used); return 0; }

出力:

<事前> <コード> Time spent: 41 seconds (time) Time spent: 26.9069 seconds (clock)

システム:

<事前> <コード> Macbook Pro 13 mid-2012 OS: MacOS Sierra (10.12.4) Processor: 2,5GHz Intel Core i5 (4 cores) Memory: 4GB (1600MHz DDR3) HD: SSD 240GB

誰もがなぜこれが起こっているのか手がかりを持っていますか?

英語

I'm making a performance experiment with VirtualBox, but something very strange is happening with time when I try to measure it with clock(). Somehow the output through this method is smaller then the output result from time() (And apparently the right one). The following results are obtained without any VM running.

#include <stdio.h> #include <time.h> int main() {        clock_t start, end;     double cpu_time_used;     long int i = 0;     time_t start_t = time(NULL);     printf("%d ", start_t);     start = clock();     while (i<1000000000){         if(i%100==0)             printf("%d ", i);         i++;     }     end = clock();     printf("Time spent: %g seconds (time) ", (double)(time(NULL)-start_t));     cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;     printf("Time spent: %g seconds (clock) ", cpu_time_used);     return 0; } 

Output:

Time spent: 41 seconds (time) Time spent: 26.9069 seconds (clock) 

System:

Macbook Pro 13 mid-2012 OS: MacOS Sierra (10.12.4) Processor: 2,5GHz Intel Core i5 (4 cores) Memory: 4GB (1600MHz DDR3)  HD: SSD 240GB 

Does anyone have any clue why this is happening?

</div
              
     
     

回答リスト


関連する質問

0  Real World Timeを録音する時間  ( Time h ctime issues with recording real world time ) 
私は現在私の選別アルゴリズムのタイマーに関する問題に遭遇しています、私はバブルソートを使っています。 私は、私のアルゴリズムが実行されている瞬間の時間を実行する時間を録音するためにタイマーを記録し、プログラム(望ましくないプログラム)に値を開くために使用して入...

0  私の質問はTM_YEARで-1900を使用することです  ( My question is about using 1900 in tm year ) 
大学の<コード> c++ を学んでいて、1つのことを理解していないコードがあります。 +1900 を使用しますが、Professorはコメント行で<コード> -1900 を使用しています。 <事前> <コード> Fecha& Fecha::operator ...

1  ファイル内の日付を追加 - C  ( Adding date in a file c ) 
私はC.でネットワークゲームをコーディングしています。ファイル内の書き込みスコア。私はまたその日の日付を追加したいと思いました。 ファイルの構造:日付名前スコア そしてコード: <事前> <コード> ScoreFile = fopen("scores.txt"...

1  TIME.HとCのタイミング  ( Timing in c with time h ) 
私はUbuntuで働いている、と私は時間にCのアセンブラ機能が欲しいます。 それは私のコード: <事前> <コード> #include <time.h> #include <stdio.h> #include <unistd.h> extern void as...

1  LinuxカーネルADD_TIMER  ( Linux kernel add timer ) 
カーネルのモジュールを書いています。私はしばらくの間プロセスを待つ必要があります(たとえば、20秒)何かをテストするだけです。 20秒後にプロセスが続くべきです。 my module_init関数では、そのようなタイマーを使用しました。 <事前> <コード> ...

0  無限ループと時間  ( Infinite loop and time ) 
私は与えられた日付が現在の時刻に対応しているのを比較しようとしていますが、それがプログラムの実行に想定されていると考えられます。当時の時間が当時に対応するのを待つように無限ループを使用しました。問題は、それが発生したときに複数の時間を実行し、これを解決する方法...

5  C ++システムファイルBITS / stat.hが突然「エラー:フィールド 'st_atim'が不完全なタイプを持っています」  ( C system file bits stat h suddenly breaks with error field st atim has inc ) 
働くことが知られていた大きい古いシステムをUbuntu 64ビットLinuxに移植しています。システムはFLTKを使用し、1.3.2にアップグレードし、NetBeansを使用しています。ファイルには、その最初の行として基本的なUniversal /fl/Fl....

0  C内の条件のためにクールダウンタイマーを作るにはどうすればよいですか?  ( How do i make a cooldown timer for a condition in c ) 
私は現在大学のためのプロジェクトに取り組んでいます、そして私は修正するようには思われることができないという問題を越えて来ます。私は恒久的なループで特定のコンサイザルアクションのためのクールダウンを作成しようとしています。私は時間関数を使ってみていますが、それは...

0  <time.h> / <ctime>はティックを数えるものではありません  ( Time h ctime are not counting ticks ) 
edit:今機能しているようです。このコードは私の改訂を表示するように更新されました。あなたの助けのためにありがとうございました。 私は愚かなことを想像していますが、私は私のプログラム全体を通してCPUのティックを数えるにはCTIMEを使うことを試みます...

1  C ++でtime.hで警告を取り除く方法は?  ( How to get rid of the warning with time h in c ) 
このを使ったとき <事前> <コード> #include<time.h> //... int n = time(0); //... intへの変換に関する警告を受けます。この警告を取り除く方法はありますか? ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有