問題タブ [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 - Pythonでのcprofileコンパイルエラー
Python の cProfile を使用して、コードを cprofiled しましたが、compile() と null 文字に関連するこのエラーが引き続き発生し、よく理解できません。
エラーメッセージは次のとおりです。
[cProfileV]: http://127.0.0.1:4000 で入手可能な cProfile出力('CProfileV==1.0.6', 'console_scripts', 'cprofilev')() ファイル "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/cprofilev.py", 217 行目、メイン コード = compile(fp.read(), progname, 'exec') TypeError: compile() は null バイトのない文字列を予期します
クライアント コードの問題ですか、それともサーバーが起動していないだけですか?
前もって感謝します。
python - PyCharm + cProfile + py.test --> pstat スナップショット ビュー + コール グラフが空です
py.test
PyCharm では、デフォルトのテスト ランナーとしてセットアップします。
私は簡単なテストケースを持っています:
ここで、ファイルを右クリックしてProfile 'py.test in test_profile.py'
.
コンソールでテストが正常に実行されていることを確認します (と表示されますcollected 1 items
)。ただし、Statistics/Call Graph
生成された pstat ファイルを表示するビューは空で、Nothing to show
.
test_something
とのプロファイリング情報が表示されることを期待していますmy_function
。私は何を間違っていますか?
編集 1 : ファイルの名前を で始まらないものに変更しtest_
、 を削除してを呼び出すメソッドをunittest.TestCase
挿入すると、最終的に py.test なしで cProfile を実行でき、結果が表示されます。__main__
my_function
ただし、私は大量のテストを含む大規模なプロジェクトに取り組んでいます。追加のプロファイリング スクリプトを作成する代わりに、これらのテストを直接プロファイリングしたいと考えています。py.test
プロジェクトのすべてのテストを再帰的に取得できるように、テスト検出モジュールを呼び出す方法はありますか? (unittest
によって認識されないジェネレーター関数で多くのパラメーター化されたテストを生成するため、発見は十分ではありませんunittest
)。このようにして、少なくとも 1 つのスクリプトを追加するだけで問題を解決できました。
profiling - profilehooks は .prof ファイルを書き込めますか?
profilehooks の出力を .prof ファイルに書き込みたいと思います。ファイルを qcachgrind ファイルに変換し、プロファイリング結果を視覚化するため。(cProfile を cProfile として使用することはできません。コードをプロファイリングしません)
python - 関数呼び出しに 10 秒かかっています
ボトルネックを見つけるために cProfile でコードのプロファイリングを行ったところ、独特のボトルネックが見つかりました。
私のコードは次のように構成されています:
cProfile では、合計 17.554 秒間実行されます。合計時間でトップの関数は次のとおりです。
ご覧のとおり、A1Distance は約 10 秒かかり、1 回呼び出されます。pr.enable() と pr.disable() を関数内に配置すると、同じ出力になりますが、A1Distance の 10 秒はありません。したがって、関数を呼び出すだけで 10 秒かかるように見えます。これの理由/修正について何か提案はありますか?
python - コレクションモジュールからのdequeは、Pythonのリストよりも先頭に追加するのが本当に100倍高速ですか?
私のコードに何か問題がありますか? 通常のリストとは対照的にdeque
、モジュールから使用して単純な関数のタイミングをとると、100 倍のスピードアップが得られます。collections
私のコードに問題がない場合、リストを使用する意味は何ですか? に完全に切り替えてみませんdeque
か?
python - Argument Parser を使用する関数の cProfile
ArgumentParser を使用してコマンド ラインから指定された引数を解析する Python スクリプトでcProfileを実行しようとしています。引数の中には、スクリプトがデータ入力に使用する 2 つのファイル名があります。
実際のデータを使用して関数をプロファイリングできるようにするために、 cProfileを介して何らかの形で引数を提供できるかどうか疑問に思っていました。
事前にどうもありがとうございました。
pycharm - PyCharm を使用してプロファイリング データを表示する
PyCharm 内の外部 .pstat ファイルを開いて表示する方法があるかどうかは誰にもわかりませんか? しようとすると、ファイルの種類を選択するように求められますが、そのオプションがないようです (ビューが内部的に生成されたプロファイル データに使用されている場合でも)。
python - cProfile モジュールを使用して Python の各関数の時間を計測するにはどうすればよいですか?
いくつかのコマンドライン引数を受け取り、それらをいくつかの関数で使用する Python のプログラムがあります。cProfile (コード内) を使用して各関数の実行時間を取得するにはどうすればよいですか? (プログラムが完了したら、プログラムを正常に実行したい)。それでも、たとえば、使用できないなど、方法がわかりません
cProfile.run('loadBMPImage(sys.argv[1])')
関数 loadBMPImage の実行時間をテストします。sys.argv[1]
引数として使用できません。各関数がコマンドライン引数に依存している場合、cProfile を使用して各関数の実行時間をテストし、stdout に出力する方法はありますか? また、cProfile はコード自体に統合する必要があります。ありがとう
python - ユーザーコードを変更せずにcProfilerでプロファイリングされているコードをタイムアウトする方法は?
多くの場合、仕事中にファイルから行を読み取るコードを記述し、それらの行を一度に 1 行ずつ処理します。
行の処理が複雑でファイルが長い場合があります。たとえば、今日では 200 行を処理するのに約 1 分かかり、ファイル内の合計行数は 175k です。
コードのどの部分に時間がかかっているかを把握したいので、Python で cProfiler を使用することにしました。
問題は、コード全体を実行するには時間がかかりすぎるため、実際にはコード全体を実行できないことです。終了シグナルの途中でプロセスを中断すると、cProfiler もレポートを作成せずに終了し、ロジックを使用してコードを変更して特定の後に終了します。上位 K 行だけを読むのは面倒です (仕事のさまざまな種類のデータに対して、この種のことを頻繁に行う傾向があるためです)。可能であれば、プロファイリングのためだけにオプションを追加することは避けたいと考えています。
cProfiler を 3 分間実行し、何が起こったかをプロファイリングし、停止してから結果を報告するように指示する最もクリーンな方法は何でしょうか?