visual studio(windows) 6th-skylake Intel CPU 4.0GHz
gcc linux Debian Intel CPU 1.7GHz
どちらも64bitです。
以下のプログラムをテストしました。
最適化は行っていません。
C
1#include<time.h> 2#include<stdio.h> 3 4int main(){ 5 clock_t start, end; 6 int n; 7 int d; 8 9 start = clock(); 10 11 //scanf("%d", &d); 12 13 for(long i = 0; i < 999999999; i++){ 14 n = i; 15 } 16 17 end = clock(); 18 printf("%f\n", (double)(end - start) / CLOCKS_PER_SEC); 19 20 return 0; 21}
gcc : 2.360730
visual studio : 1.624000
となりました。
CPU性能に差があるので、まぁこんなものかなって感じですね。
ところが、scanf()のコメントを外して実行してみると、、、
10秒後くらい経過したら適当にキーを打ちます。
gcc : 2.286145
visual studio : 12.181000
という結果になりまいした。
これって、Linuxの方はscanf()が計測時間に含まれていない・・・ということですよね??
同じソースをvisual studioとgccでコンパイルすると結果に差が出てきてしまいますよね。(例えばゲームとか・・・)
なぜこのような違いがでてくるんでしょうか?
これをscanf()の待ち時間も計測に含める方法ってあるんでしょうか?
わかる方お願いします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/07 07:23
2017/12/07 07:24
2017/12/07 07:27
2017/12/07 07:29