回答編集履歴

1

誤情報の訂正

2017/12/07 07:57

投稿

a_saitoh
a_saitoh

スコア702

test CHANGED
@@ -7,3 +7,29 @@
7
7
 
8
8
 
9
9
  Windowsはscanfを呼び出したプログラム自身が結構CPUを使っちゃってるようですね。
10
+
11
+
12
+
13
+ 追記:
14
+
15
+ 間違いでした。
16
+
17
+
18
+
19
+ Linux glibc 2.18 以降のclockはは、 精度を向上させるため、 clock_gettime(2) (の CLOCK_PROCESS_CPUTIME_ID クロック) を使って実装されていいます。以前はtimes()を使ってましたがどっちにしても消費したCPU時間をはかっています。
20
+
21
+
22
+
23
+ 一方Winowsのclockはwall-clock timeを返す関数(時刻がわかるので差し引きすると経過時間が出る)で「ISO Cと互換性がない」と書かれています。
24
+
25
+ https://msdn.microsoft.com/en-us/library/4e2ess30.aspx
26
+
27
+
28
+
29
+ そもそも違うものを計っていたと言うことです。
30
+
31
+
32
+
33
+ おそらくは、Win321piのGetProcessTimesを使うとかするぼが正解。
34
+
35
+ C++プログラミングがしたいのならすでに他の方が答えているstd::chrono::high_resolution_clock::now()関数が正解なのでしょう。