[解決済み】timeitモジュールの使い方
2022-03-24 13:18:03
質問
のコンセプトは理解しています。
timeit
がありますが、私のコードでどのように実装すればよいのかわかりません。
2つの関数を比較するには、例えば
insertion_sort
と
tim_sort
である。
timeit
?
解決方法は?
方法 時間 は、セットアップコードを一度実行してから、一連のステートメントを繰り返し呼び出すという仕組みになっています。 ですから、もしソートをテストしたいのであれば、インプレースソートの1パスがすでにソートされたデータで次のパスに影響しないように、ある程度の注意が必要です(もちろん、そうすると ティムソート なぜなら、データがすでに部分的に順序付けされているときに、最高のパフォーマンスを発揮するからです)。
ここでは、ソートのテストを設定する例を示します。
>>> import timeit
>>> setup = '''
import random
random.seed('slartibartfast')
s = [random.random() for i in range(1000)]
timsort = list.sort
'''
>>> print min(timeit.Timer('a=s[:]; timsort(a)', setup=setup).repeat(7, 1000))
0.334147930145
この一連の記述は、ソートされていないデータを毎回新しくコピーしていることに注意してください。
また、測定スイートを7回実行し、ベストタイムだけを残すというタイミングテクニックにも注目です。これは、システム上で実行されている他のプロセスによる測定の歪みを減らすのに非常に役立ちます。
以上が、timeitを正しく使うためのコツです。 お役に立てれば幸いです:-)
関連
-
Python jiabaライブラリの使用方法について説明
-
python implement mysql add delete check change サンプルコード
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] 関数デコレータを作成し、それらを連鎖させるには?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] モジュールの関数名(文字列)を使って、モジュールの関数を呼び出す。
-
[解決済み】forループを使った辞書の反復処理
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python jiabaライブラリの使用方法について説明
-
python implement mysql add delete check change サンプルコード
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
PythonでECDSAを実装する方法 知っていますか?
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み] データ型が理解できない
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない
-
[解決済み】2つのリストを並列に反復処理する方法は?