問題タブ [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 に答える
1416 参照

python - timeit 内の Python 関数呼び出しのタイムアウト

my_function(*args, **kwargs)渡された引数に応じて、30秒から数時間(日)かかる関数があります。さまざまな引数のリストがあり、引数を指定して関数がどれくらいの時間を要するかを知りたいです。

私はまだ を使用するtimeitのに非常に慣れていませんが、この部分を実行するのに十分なことを学びました。ただし、これは私の目的にはあまり効率的ではありません。完了するのに 4 時間以上かかる一連の議論は、すべて「有限」時間で解決できるにもかかわらず、扱いにくいと見なされます。引数の一部 (おそらくほとんど) の実行時間は 20 時間以上かかるため、4 時間後にテストを終了する方法を探しています。それは難治です。

私はTimeout on a Python function callStop code after time periodを見てきましたが、これは重複するのに十分近い質問かもしれませんが、これらの回答を統合するのに問題があるtimeitため、4時間未満の時間が次のように記録されます長時間の実行で 4 時間を超える有効な時間が返されるまでは、そうする必要があります。

これを行うための最良の方法は何ですか?

編集:func(*args,**kwargs)私が抱えていた問題の1つは、関数が次のようになっている間に、私が見た答えが取り入れられたことですtimeit:

このフォームの処理方法がわかりません。

編集: スレッドを使用して以下に提供した元の回答は、実際にはスレッドを終了しません。これは、次の関数で実行することで簡単に表示できます。

multiprocessing.Pool実際にはを含む を含むコードを使用すると、これがterminate()可能になります。

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

python - ネストされた関数を timeit にインポートする

次の設定パラメータの何が問題になっていますか?

私も次のことを試しました:

  • setup="from __main__ import bubbleSort,from copy import copy"
  • setup="from __main__ import bubbleSort,copy"
  • setup="from __main__ import bubbleSort"

次のようにトレースバックします。

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

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 はこのようなケースをどのように処理しますか?

実際のコードは次のとおりです。

対このコード:

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

python - Python の timeit モジュールが numpy モジュールを認識しない

特に通常のリストとnumpyリストの場合、2つの同一のリスト間の処理時間をテストしたいと思います。私のコードは

の計算tは問題ありませんが、uNameError: global name 'np' is not defined がリストされています。

処理時間を取得するには、どのようにコーディングすればよいですか?

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

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 をスタンドアロンで実行できるようにするにはどうすればよいでしょうか?

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

python - インデックスを入力番号として for ループで timeit を実行する

次のようにPython関数の時間を計るためにtimeitを実行しようとしています:

global name 'i' is not definedプログラムの開始時に次のように定義しましたが、global i

timeit を実行すると、次のようになります。

できます。助言がありますか?

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

python - 関数の実行にかかる時間を計測するために timeit をどのように使用しますか?

このコードの実行にかかる時間を計算しようとしています:

出力は次のとおりです。

514229 0xda28c0 の timeit.Timer インスタンス