問題タブ [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.
python - timeit 内の Python 関数呼び出しのタイムアウト
my_function(*args, **kwargs)
渡された引数に応じて、30秒から数時間(日)かかる関数があります。さまざまな引数のリストがあり、引数を指定して関数がどれくらいの時間を要するかを知りたいです。
私はまだ を使用するtimeit
のに非常に慣れていませんが、この部分を実行するのに十分なことを学びました。ただし、これは私の目的にはあまり効率的ではありません。完了するのに 4 時間以上かかる一連の議論は、すべて「有限」時間で解決できるにもかかわらず、扱いにくいと見なされます。引数の一部 (おそらくほとんど) の実行時間は 20 時間以上かかるため、4 時間後にテストを終了する方法を探しています。それは難治です。
私はTimeout on a Python function callとStop code after time periodを見てきましたが、これは重複するのに十分近い質問かもしれませんが、これらの回答を統合するのに問題があるtimeit
ため、4時間未満の時間が次のように記録されます長時間の実行で 4 時間を超える有効な時間が返されるまでは、そうする必要があります。
これを行うための最良の方法は何ですか?
編集:func(*args,**kwargs)
私が抱えていた問題の1つは、関数が次のようになっている間に、私が見た答えが取り入れられたことですtimeit
:
このフォームの処理方法がわかりません。
編集: スレッドを使用して以下に提供した元の回答は、実際にはスレッドを終了しません。これは、次の関数で実行することで簡単に表示できます。
multiprocessing.Pool
実際にはを含む を含むコードを使用すると、これがterminate()
可能になります。
python - ネストされた関数を timeit にインポートする
次の設定パラメータの何が問題になっていますか?
私も次のことを試しました:
setup="from __main__ import bubbleSort,from copy import copy"
setup="from __main__ import bubbleSort,copy"
setup="from __main__ import bubbleSort"
次のようにトレースバックします。
python - Python timeit モジュール実行の混乱
Python で timeit モジュール (編集: Python 3 を使用しています) を使用して、いくつかの異なるコード フローを決定しようとしています。このコードには、文字列内に文字コードが存在するかどうかをテストする一連の if ステートメントがあり、存在する場合は次のように置き換えます。
これをさまざまな部分文字列に対して何度も行います。それと、次のような置換のみを使用することとの間で議論しています。
timeit を使用して、どちらが高速かを判断しようとしました。上記の最初のコード ブロックが「stmt1」で 2 番目が「stmt2」の場合、セットアップ文字列は次のようになります。
timeit ステートメントは次のようになります。
と
さて、同じように実行すると、2台のラップトップ(同じハードウェア、同様の処理負荷)でstmt1(ifステートメントを含むステートメント)が複数回実行した後でも高速に実行されます(100分の3〜4秒対約4分の1秒) stmt2 の 1 秒)。
ただし、両方のことを行う関数を定義すると (変数を作成するセットアップを含む)、次のようになります。
と
実行時は次のようになります。
if ステートメントのないステートメント (foo2) はより高速に実行され、関数化されていない結果と矛盾します。
Timeit の仕組みについて何か不足していますか? または、Python はこのようなケースをどのように処理しますか?
実際のコードは次のとおりです。
対このコード:
python - Python の timeit モジュールが numpy モジュールを認識しない
特に通常のリストとnumpyリストの場合、2つの同一のリスト間の処理時間をテストしたいと思います。私のコードは
の計算t
は問題ありませんが、u
NameError: global name 'np' is not defined がリストされています。
処理時間を取得するには、どのようにコーディングすればよいですか?
python - timeit で使用する関数を適切にインポートする方法
timeit 関数を使用して、作成した 2 つのメソッドでいくつかのメトリックを実行していますが、問題が発生しています。以下の単純化されたサンプル ファイルを参照してください。
fileA.py、これはスタンドアロンで実行され、関数 foo を timeit でテストしようとしています。
この関数はスタンドアロンで正常に動作し、次のように実行できます./fileA.py 5
私は同様のファイルを持っています。fileB.py
これは foo の異なる実装ですが、foo の内部を除いてまったく同じです。
ここで、fileA と fileB の両方で timeit を使用しようとしています (fileB の部分は省略されています)。
私が得ている問題は、fileC.pyを実行すると、「コマンドライン引数が必要です、終了します」と表示されて終了することです。これが fileA.py から来ていることは理解していますが、コードのこの部分が実行されているのはなぜですか? 私は、timeit の動作方法として、fileA から foo をインポートしているだけだという印象を受けました。私は間違っていると思いますか?もしそうなら、これを修正する最善の方法は何でしょうか?メソッドfoo(n)
をテストし、必要なコマンド ライン引数を使用して fileA をスタンドアロンで実行できるようにするにはどうすればよいでしょうか?
python - インデックスを入力番号として for ループで timeit を実行する
次のようにPython関数の時間を計るためにtimeitを実行しようとしています:
global name 'i' is not defined
プログラムの開始時に次のように定義しましたが、global i
timeit を実行すると、次のようになります。
できます。助言がありますか?
python - 関数の実行にかかる時間を計測するために timeit をどのように使用しますか?
このコードの実行にかかる時間を計算しようとしています:
出力は次のとおりです。
514229 0xda28c0 の timeit.Timer インスタンス