SANDFISH FACTORY

技術ブログです。python・vuejsを愛でる日々について綴ります

PyConJP2021で一番楽しみにしていたセッションをもとに改めて振り返った

PyCon JP 2021 Advent Calendarの4日目です。

仕事で少しだけ役割が追加されたので、ここ1週間はあたふたしていました。
内容がだいぶ薄いカルピスのような感じになってしまって、申し訳ないです。
発表者の方のスライドはとても学びがあるので、そちらを見てください。

PyCon JPの2日間を通しての参加レポートは既に作成済みです。
PyCon JP 2021に参加してきました。 - SANDFISH FACTORY

今回は、一番楽しみにしていたセッションについて書きます。

High Performance FastAPI

speakerdeck.com

今回の発表で一番楽しみにしていたトークです。

パフォーマンスチューニングについて想定した原因とそれに対する対応という感じで説明がなされてとても良いトークでした。
パフォーマンスチューニングの心得は考え方の共有って意味でも自チームにも共有したいなって思いました。(pythonじゃないけど)

これまでの経験でもI/O boundやCPU boundでキャッシュすれば良いよねってやつは対応したことあるけど、Cythonを使ったケースや処理系を変える対応はしたことがなかったので、事例と解決策をみれたのはよかったです。
自身のエンジニア力の弱さが露呈したので、日々精進だなーって思いました。
ここまでは元の参加レポートの記載内容のままです。

セッションを聞いた上で深掘りした内容

ここからが今回聞いてみた上で 深掘りした内容です。

Locust

私がこれまでの経験でpythonで負荷をかけるためのツールを利用したことがなかったので、今回のセッションで説明のあったLocustは勉強になりました。

docs.locust.io

さらっと調べた感じだとCSVで結果を出力できるみたいなので、便利そうに思いました。
グラフも出力できたらより良いなって思いましたけど、CSVで出力されるので良しなにって感じなのかなって思いました。

docs.locust.io

py-spy

ボトルネックを調査するためのプロファイラです。
Rustで書かれていて、実行中のPythonプログラムのプロファイルとデバッグを可能にすることを目的としていますとgithub上には書かれています。
この辺りはこのツールを利用するで大きなメリットだなと思いました。

github.com

負荷ツールと同じなんですが、この手のツールを最近は使っていないので、だいぶ感覚を忘れてしまったなと説明を聞いていて思いました。
スライドの説明を参考に今年の年末は負荷ツールとプロファイラを使ってみて以前の感覚を思い出さないとなーと感じました。

あとはgithub上のFAQを読んでも内容が頭に入ってこなかったので、精進します。

asyncio

asyncioを全く使いこなせていなかったので、asycioに対応しているかきちんと調べないといけないんだなと理解しました。
http通信でも既にあるライブラリを参考にして検証することが多かったので、きちんと意識が向いていなかったです。
他のセッションでも似た説明を聞いたので、今後は意識して対応したいと思います。

まとめ

繰り返しになってしまうのですが、今回のPyConJP2021では全体を通して自分が知らないことが多くて学びが多かったです。
ただ、実際動かしてみないと理解が弱いので、今回のAdvent Calendarの機会で振り返ったことで年末に触ってみたいなと思います。  

アーカイブが公開されていたので、リンクを貼っています。(2021/12/05更新)

youtu.be

以上、だいぶ薄味な感想レポートですが、PyCon JP 2021 Advent Calendarの4日目の投稿とします。
ありがとうございました。