問題タブ [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.
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 フラグを使用するにはどうすればよいでしょうか?
python - cProfile に非常に時間がかかる
cProfile
Python スクリプトのプロファイリングに使用し始めています。私は非常に奇妙なことに気づきました。
スクリプトの実行時間を測定するために使用time
すると、4.3 秒かかります。
私が使っpython -m cProfile script.py
た時は7.3秒かかりました。
コード内でプロファイラーを実行する場合:
63秒かかります!!
cProfile
プロファイリングを追加するときにもう少し時間がかかる理由は理解できますが、外部から使用する場合とコードの一部として使用する場合で、このような違いがあるのはなぜですか? を使用すると時間がかかるのには理由がありますprofile.run
か?
python - c相対インポートによるモジュールのプロファイリング
私はこれらのファイルを持っていますmymodule
この単純な内容で:
私はそれを実行することができます(そして何も起こりません)python -m mymodule.lib
しかし、私はそれをプロファイリングすることはできません:
では、どうすればcProfile
ライブラリを作成できますか? ライブラリは何もしていないので、lib モジュールのインポートのみがプロファイリングされますが、それで十分です。この段階では、すべての関数呼び出しをプロファイルするのではなく、モジュールのインポートのみをプロファイルします。
sを避けて、相対インポートを持つモジュールのcProfileでこれを行うにはどうすればよいValueError
ですか?
python - 不正なマーシャル エラー -- runsnake
Python 3 スクリプトで cProfile を実行し、うまく機能した後、runsnake を使用して視覚化しようとしました。ただし、空の画面と「不正なマーシャル データ」というエラーが表示されました。
.pyc ファイルを削除しましたが、それも機能しませんでした。
runsnake のインストールに使用したコードは次のとおりです。
UBUNTUを使用しています。
どうもありがとう。
注:py3kがアクティブ化されている間にすべてをインストールしたことを追加する必要があります
python-2.7 - 並列外部プログラムを呼び出す Python プログラムのプロファイリング
マルチプロセッシング コードのプロファイリングに関するこの質問と同様に...
コードベースのプロファイルを作成する必要があり、cProfile を使用する予定でした。このプログラムは本質的に、評価関数を並列に実行する遺伝的アルゴリズムです。キッカーは、この評価関数がコマンドラインを介して別の Python プログラムを外部から呼び出すことです。
cProfile を使用して実行全体をプロファイリングすることはできますか? 基本的に、ワーカー関数 (累積時間、pcalls、メモリ オーバーヘッドなど) 内でプロファイリングを開始するつもりでしたが、外部プログラムがプロファイラーに表示されないことが懸念されます。
python - cProfile ログからの関数呼び出しを無視する
を使用して特定のモジュールの関数呼び出しの頻度を取得できることはわかっていますpstats.print_stats('python_script.py:')
が、一連の関数を含まないプロファイリングされたプログラムで呼び出されたすべての関数の頻度のレポートを出力したいと考えています。
たとえばfunction1
、 、function2
、function3
、およびfunction4
(このリストははるかに大きいと仮定します) があり、 でない限り、各関数が呼び出された回数を出力したいとしますfunction3
。無視する関数のリストを作成し、それをpstats
モジュールとプロファイリングしているファイルに渡すことはできますか?
特に、前述のセットを含まないすべての関数の呼び出し数に関心があります。おそらく、関数の完全なリストを解析してそのセットを無視するスクリプトを作成することもできますが、pstats モジュールにはもっと簡単な方法があると思います。
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()
、より高速に実行できる方法はありますか?
編集:このラムダを理解するために欠落していた最後の成分:
python - Python cProfile の出力を理解する
私の python スクリプトは、ファイルを順番に解析し、簡単なデータ クリーニングを行い、新しい csv ファイルに書き込みます。を使用してcsv
います。スクリプトの実行に非常に長い時間がかかります。
cProfile
出力は次のとおりです。
ここに質問を投稿する前に、多くのグーグル検索を行いました。
画像へのリンク画像へのリンク
ここにコードを追加すると、呼び出される関数