問題タブ [timeit]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
172 参照

python - Pythonでキーエラーをスローするtimeit

timeitを使用して単純なPythonメソッドの時間を計測しようとしていますが、次のエラーが発生し続けます

以下に示すように、コードは「ツリー」オブジェクトを作成し、そのオブジェクトをタイマーオブジェクトに渡そうとします。私はこれが問題があるところだと思います。

代わりにbinarytree.mkthing(0,10)をTimerに渡すと、コードが機能することに注意してください。ただし、これを行うと、すべてのパスでmkthingが呼び出されます。一度だけ呼び出して、再利用したいです。

どうすればいいですか?

0 投票する
1 に答える
570 参照

python - timeit.timerは、自分の関数で使用する場合とコマンドラインから呼び出す場合で、結果が大きく異なります。

怠惰になり、計画どおりにパンアウトしないタイピングを減らすことができるように、timeitを使用して小さな関数を作成しました。

(関連する)コード:

正常に動作しますが、戻り続けます。

さて、通訳からやったら:

最終的には[0.007723014775432375, 0.007615270149786965, 0.0075242365377505395, 0.007420834966038683, 0.0074086862470653615]、または約8ミリ秒になります。

また、スクリプトでプロファイラーを実行すると、約8ミリ秒というほぼ同じ結果が得られます。

問題が何であるかはよくわかりませんが、関数の呼び出し方法と関係があると思います。デバッガーでデータを確認すると、lenが53の辞書として機能が表示され、各キーには1〜15個のタプルが含まれ、それぞれに2〜3桁の数字のペアが含まれています。

だから、誰かがそれがなぜそれをしているのかを知っていて、それを私に説明したいのであれば、そしてそれを修正する方法は素晴らしいでしょう!

0 投票する
1 に答える
177 参照

python - Pythonで実行時間を見つける

私は完璧に動作する次のコードを持っています:

完璧に動作しますが、私のコンピューターがこのプログラムを実行するのにかかる時間を知りたいです。問題をグーグルで調べた後、2つの選択肢が見つかりました:

1) timeit import Timer から。結果を印刷する部分に、次のように追加しました。

これは正常に動作します: Running Time = 0.00682769470029を取得します

2) from datetime import datetime および:

これも正常に動作し、次のようになります: 0:00:00.010000

私の質問は、なぜ両方の方法が異なるのですか? 異なる結果が得られるのはなぜですか? この「実行時間の計算」を1行で行う方法はありますか?

ありがとうございました

アップデート:

だから私は入力することができます(私のファイルはtime1.pyとして保存されます)

しかし、エラーが表示されます:「属性エラー:「モジュール」オブジェクトには属性「メイン」がありません

0 投票する
1 に答える
822 参照

python - 暗黙的 vs 明示的オブジェクト メソッド メモリ ベンチマークの違い

オブジェクトをメソッドに渡す 2 つの異なる方法でベンチマークを実行しましたが、暗黙的なオブジェクトの受け渡しは、明示的な方法よりも時間がかかりませんでした。私の本によると、これらは同一のプロセスです。何が違いを説明していますか?

まず、クラス定義は次のとおりです。

したがって、次の 2 つのコード セットのそれぞれで「timeit」を実行すると、最初のコードはループあたり 317 ns を返し、2 番目はループあたり 400 ns を返します。以下は、オブジェクトとメソッドを渡す暗黙的なコードです。Python は、オブジェクトをバックグラウンドでメソッドに渡します。

そして、ここに明示的な代替手段があります:

ベンチマークの違いを説明するメモリ割り当てレベルで何が起こっているのか誰か教えてもらえますか? ある方法は他の方法よりも「pythonic」ですか? プログラマーが (速度を超えて) どちらか一方を選択するのはなぜですか?

ありがとうございました、

マイケル

0 投票する
3 に答える
6414 参照

python - 引数を持つ関数で timeit モジュールを使用する

ドキュメントの

ただし、パラメーターを使用して関数を呼び出す方法、たとえば、次のような関数:

0 投票する
1 に答える
129 参照

python - %timeitステートメント1; ステートメント2;

IPythonでは、魔法を扱うとき%timeit

%timeitステートメント1; ステートメント2;

statement1または一緒に(順次)測定statement1しますか?statement2私は後者を測定したいと思います。

0 投票する
0 に答える
70 参照

python - timeit、同じセットアップ文字列に異なる stmts を使用すると機能しない

timeitモジュールを使用して、挿入ソートの 2 つの実装のパフォーマンスを計ろうとしています。

以下の両方のソート機能に同じ設定データを使用したかったので、インスタンスを作成し、インスタンスの属性をtimeit.Timer変更するだけでよいと考えました。stmtこれは機能していません。

default と同じ結果である、全体的に同じ結果が得られますstmt='pass'

しかし、セットアップ文字列でコードをテストすると、機能しているように見えます。