問題タブ [cprofile]

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 に答える
851 参照

python - -m フラグを使用して複数のモジュールを実行できますか?

できるだけ多くのパラメーターを使用して Python コードをプロファイリングしたい: 1. 時間 (現在はmemory_profiler使用) 2. メモリ (現在はcProfileまたはprofile を使用)どれか)

(私が理解しているように)最も簡単なことは、上記のモジュールで -m フラグを使用することです(例:python -m cProfile [-o output_file] [-s sort_order] myscript.py

では、memory_profiler モジュールと cProfile/profile モジュールの両方に -m フラグを使用するにはどうすればよいでしょうか?

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

python - cProfile に非常に時間がかかる

cProfilePython スクリプトのプロファイリングに使用し始めています。私は非常に奇妙なことに気づきました。

スクリプトの実行時間を測定するために使用timeすると、4.3 秒かかります。

私が使っpython -m cProfile script.pyた時は7.3秒かかりました。

コード内でプロファイラーを実行する場合:

63秒かかります!!

cProfileプロファイリングを追加するときにもう少し時間がかかる理由は理解できますが、外部から使用する場合とコードの一部として使用する場合で、このような違いがあるのはなぜですか? を使用すると時間がかかるのには理由がありますprofile.runか?

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

python - c相対インポートによるモジュールのプロファイリング

私はこれらのファイルを持っていますmymodule

この単純な内容で:

私はそれを実行することができます(そして何も起こりません)python -m mymodule.lib

しかし、私はそれをプロファイリングすることはできません:

では、どうすればcProfileライブラリを作成できますか? ライブラリは何もしていないので、lib モジュールのインポートのみがプロファイリングされますが、それで十分です。この段階では、すべての関数呼び出しをプロファイルするのではなく、モジュールのインポートのみをプロファイルします。

sを避けて、相対インポートを持つモジュールのcProfileでこれを行うにはどうすればよいValueErrorですか?

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

python - 不正なマーシャル エラー -- runsnake

Python 3 スクリプトで cProfile を実行し、うまく機能した後、runsnake を使用して視覚化しようとしました。ただし、空の画面と「不正なマーシャル データ」というエラーが表示されました。

.pyc ファイルを削除しましたが、それも機能しませんでした。

runsnake のインストールに使用したコードは次のとおりです。

UBUNTUを使用しています。

どうもありがとう。

注:py3kがアクティブ化されている間にすべてをインストールしたことを追加する必要があります

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

python-2.7 - 並列外部プログラムを呼び出す Python プログラムのプロファイリング

マルチプロセッシング コードのプロファイリングに関するこの質問と同様に...

コードベースのプロファイルを作成する必要があり、cProfile を使用する予定でした。このプログラムは本質的に、評価関数を並列に実行する遺伝的アルゴリズムです。キッカーは、この評価関数がコマンドラインを介して別の Python プログラムを外部から呼び出すことです。

cProfile を使用して実行全体をプロファイリングすることはできますか? 基本的に、ワーカー関数 (累積時間、pcalls、メモリ オーバーヘッドなど) 内でプロファイリングを開始するつもりでしたが、外部プログラムがプロファイラーに表示されないことが懸念されます。

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

python - cProfile ログからの関数呼び出しを無視する

を使用して特定のモジュールの関数呼び出しの頻度を取得できることはわかっていますpstats.print_stats('python_script.py:')が、一連の関数を含まないプロファイリングされたプログラムで呼び出されたすべての関数の頻度のレポートを出力したいと考えています。

たとえばfunction1、 、function2function3、およびfunction4(このリストははるかに大きいと仮定します) があり、 でない限り、各関数が呼び出された回数を出力したいとしますfunction3。無視する関数のリストを作成し、それをpstatsモジュールとプロファイリングしているファイルに渡すことはできますか?

特に、前述のセットを含まないすべての関数の呼び出し数に関心があります。おそらく、関数の完全なリストを解析してそのセットを無視するスクリプトを作成することもできますが、pstats モジュールにはもっと簡単な方法があると思います。

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

python - list.index() 呼び出しを含むこのラムダが非常に遅いのはなぜですか?

cProfile の使用:

その1910 3.039 0.002 6.648 0.003 bosh.py:4770(<lambda>)線は私を困惑させます。bosh.py:4770 にはmodNames.sort(key=lambda a: (a in data) and data.index(a))、 data と modNames がリストになっています。1911 3.051 0.002 3.330 0.002 {method 'index' of 'list' objects}この行から来ているように見えることに注意してください。

では、なぜこれはとても遅いのでしょうか? これを書き直してsort()、より高速に実行できる方法はありますか?

編集:このラムダを理解するために欠落していた最後の成分:

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

python - Python cProfile の出力を理解する

私の python スクリプトは、ファイルを順番に解析し、簡単なデータ クリーニングを行い、新しい csv ファイルに書き込みます。を使用してcsvいます。スクリプトの実行に非常に長い時間がかかります。

cProfile出力は次のとおりです。ここに画像の説明を入力

ここに質問を投稿する前に、多くのグーグル検索を行いました。

画像へのリンク画像へのリンク

ここにコードを追加すると、呼び出される関数