回答編集履歴

3

追記2: 時間の計測方法について

2020/07/11 23:12

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -223,3 +223,21 @@
223
223
  他の案: 一定時間経過後にシグナルを送る等、テストコードに影響しない他の仕組みで解決。
224
224
 
225
225
  参考: [pytest-timeout](https://pypi.org/project/pytest-timeout/)
226
+
227
+
228
+
229
+ 追記2: yymmt さんの投稿を見て、気づいた点
230
+
231
+ time.time は [time.perf_timer](https://docs.python.org/ja/3.7/library/time.html?highlight=time%20perf_counter) の方が適切でした。
232
+
233
+
234
+
235
+ time.time()はシステムに設定された時刻に依存するので
236
+
237
+
238
+
239
+ > この関数が返す値は通常減少していくことはありませんが、この関数を 2 回呼び出し、その呼び出しの間にシステムクロックの時刻を巻き戻して設定した場合には、以前の呼び出しよりも低い値が返ることがあります。
240
+
241
+
242
+
243
+ timeitの実装も timer.perf_counter を利用しています。

2

誤字訂正

2020/07/11 23:12

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -218,7 +218,7 @@
218
218
 
219
219
  追記: 処理内容によっては誤差かもしれないけど、
220
220
 
221
- 「経過時間チェック」により時間は遅くなるので、用途次第ではこの実装は適切でないかもれません。
221
+ 「経過時間チェック」により時間は遅くなるので、用途次第ではこの実装は適切でないかもれません。
222
222
 
223
223
  他の案: 一定時間経過後にシグナルを送る等、テストコードに影響しない他の仕組みで解決。
224
224
 

1

ベンチマーク用途への追記

2020/07/11 16:17

投稿

teamikl
teamikl

スコア8760

test CHANGED
@@ -213,3 +213,13 @@
213
213
  time.sleep(1)
214
214
 
215
215
  ```
216
+
217
+
218
+
219
+ 追記: 処理内容によっては誤差かもしれないけど、
220
+
221
+ 「経過時間チェック」により時間は遅くなるので、用途次第ではこの実装は適切でないかも入れません。
222
+
223
+ 他の案: 一定時間経過後にシグナルを送る等、テストコードに影響しない他の仕組みで解決。
224
+
225
+ 参考: [pytest-timeout](https://pypi.org/project/pytest-timeout/)