Python

【Python】プログラムのボトルネックをpstatsで確認する

この記事は約2分で読めます。

 

Pythonを使う業務で仕様に従ってとりあえずプログラムを組んだものの実際に動かしてみると遅すぎて話にならない、、、

 

じゃあどこを改良するべきかという話だが如何せんどの関数がボトルネック(遅延原因)なのかわからない・・・

 

そんなときに使いたいのがこの「pstats」

 

pstatsの使い方

 

#コマンドラインで関数実行する(-s でソート)
$ python -m cProfile -o 出力ファイル名.txt -s tottime 実行ファイル名.pyのパス

 

これでログの出力は完了で、ログを出力したら、次はpstatsから分析結果を読み取ります。

 

# ライブラリと出力ファイルの読み込み
import pstats
sts = pstats.Stats("C:\\work\\sanki-aipc\\export.txt")

#バイナル出力した実行ログを読める形に変換する
sts.strip_dirs().sort_stats(-1).print_stats()

#関数の実行累積時間でソートする
sts.sort_stats(SortKey.TIME).print_stats(40)

 

これを使うと、どの関数の累計実行時間がプログラムを実行する上でのボトルネックになっているかがわかりやすいのでよく使います

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました