問題タブ [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 投票する
1 に答える
1017 参照

python - Python 関数は入力パラメーターを関数にコピーしますか?

私はPythonで次の例を持っています:

関数を使用しない場合 (time1) と関数を使用する場合 (time2) の時間比較は次のとおりです。

2つのアプローチにはわずかな違いがあるようです。関数の入力パラメータはどのように処理されますsolverか、コピーされますか、それとも単に関数の内部に渡されますか?

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

python - pip で timeit をインストールできません。どうすればこれを修正できますか?

timeit をインストールしようとしていますが、これが得られます。

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

python - 小さなリストよりも小さな文字列を反復処理する方が遅いのはなぜですか?

私は timeit をいじっていて、小さな文字列に対して単純なリスト内包表記を実行すると、小さな単一文字列のリストに対して同じ操作を実行するよりも時間がかかることに気付きました。説明はありますか?約1.35倍の時間です。

これを引き起こしている下位レベルで何が起こっているのでしょうか?

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

python - Python timeit コマンド ライン エラー:「SyntaxError: 文字列リテラルのスキャン中に EOL」

私は長い間 Python のtimeitモジュールを使用してきましたが、それは対話型の Python セッションまたは Unix シェルを介したものにすぎませんでした。現在、Windows コマンド プロンプト ( cmd.exe ) でいくつかのコード スニペットを測定しようとしていますが、次のエラーが表示されます。

文字列に改行文字を挿入していないため、かなり紛らわしいです。実際には、 timeit モジュールのドキュメントから直接例を貼り付けました。

これをいじりながら、エラーが直前の文字をマークしたため、スペースなしでスニペットをテストしてみました。pass例外は発生しなくなりましたが、モジュールは、次のようにステートメントを渡した場合と同じ実行時間を報告します。

同じ行を Unix シェルに貼り付けて期待どおりに動作するので、モジュールを正しく呼び出していると確信しています。

Python 2.7 と 3.3 でまったく同じ結果が得られるので (さらに、モジュールは純粋な Python で記述されており、長い間使用されてきました)、これは Python とは何の関係もないと確信していますが、Windows コマンド プロンプトは、代わりは。

では、なぜこの奇妙な動作が正確に発生し、どのように修正すればよいのでしょうか?

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

python - コード スニペットで timeit が機能しないのはなぜですか?

これら3つは論理的に同等であり、セットを返すと思います{1, 3, 4}

しかし、ipython (python 3.4.0 の v1.2.1) でそれぞれのパフォーマンスを確認しようとすると、timeit マジックが失敗します。

何が起きてる?2.7 でも失敗します。timeit.timeitバニラの pythonメソッド を使用してこれを再現することはできません。

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

python - 実行中のクラス メソッドのパフォーマンス テスト

別のクラス methodM で使用される methodT を含むクラスがあり、methodT の実行時間を計測したいと考えています。

これが私が試したことです

Aの方法でも結果は出ますが、今回の結果に比べると精度は落ちていると思います。

ただし、メソッド B では、timeit は self.run_process を認識しないため、NameError を生成します。

この投稿を読んで、timewrapper メソッドを追加してみました

を与えるので、私にはうまくいきませんNameError: global name 'timewrapper' is not defined

私の質問は、timeit を使用してメソッド B を正しく実装するにはどうすればよいですか?

注: コア python 以外のモジュールは使用できません

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

python - リストを一意にする list+set メソッドは、辞書キー メソッドよりも高速なのはなぜですか?

同じための timeit トライアルのサンプルを次に示します。

ご覧のとおり、list(set(MY_LIST)) メソッドは辞書メソッドよりも約 2.5 倍高速であり、結果は小さなリストでも大きなリストでも同様です。

なぜこれがそうであるか、つまり時間の複雑さの点でこれらの両方のステップの実行機能の違いを説明できますか?