teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

macOSの精度

2021/07/30 14:57

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -11,4 +11,6 @@
11
11
  timespec_get(&ts, TIME_UTC);
12
12
  end_nano = (uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec;
13
13
  printf("time:%" PRIu64 " nsec\n", (end_nano - start_nano));
14
- ```
14
+ ```
15
+
16
+ macOS 10.15 で試してみたところ下3桁が常に000だったので、この環境ではマイクロ秒精度のようです。

1

コード修正

2021/07/30 14:57

投稿

int32_t
int32_t

スコア21933

answer CHANGED
@@ -4,11 +4,11 @@
4
4
  struct timespec ts;
5
5
  uint64_t start_nano, end_nano;
6
6
  timespec_get(&ts, TIME_UTC);
7
- start_nano = ts.tv_sec * 1000000000 + ts.tv_nsec;
7
+ start_nano = (uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec;
8
8
 
9
9
  // 計測したい処理はここに。
10
10
 
11
11
  timespec_get(&ts, TIME_UTC);
12
- end_nano = ts.tv_sec * 1000000000 + ts.tv_nsec;
12
+ end_nano = (uint64_t)ts.tv_sec * 1000000000 + ts.tv_nsec;
13
13
  printf("time:%" PRIu64 " nsec\n", (end_nano - start_nano));
14
14
  ```