バタイユゲーム支援ツール強化版を非同期処理で高速化できないか検討してみた。
結論から言うと難しい。
後の為に、試した事を以下にメモしておく。
1.基本的な考え方
前回の高速化検討で使ったテスト用EXCELシートを名前を変えて2つ使う。
pythonプログラムから2つのEXCELシートを非同期処理で動かす。
但し、各々のEXCELシートの処理回数は半分にする。
→前回の12回の処理を6回ずつ分けて行う。
2.pythonプログラム
(1)非同期処理
下図のようにして計測すると0.516秒となる。
単純に12回処理した場合の0.416秒よりも0.1秒遅くなる。
(2)同期処理
念の為に同期処理で計測すると0.522秒かかるので、非同期化の効果は少しだけある。
なお、6回の処理は0.28秒かかる。
3.参考資料
下記のWEBページにお世話になりました。ありがとうございます。
・最近のPythonでのコンカレント(並列)の非同期処理 async/await ・asyncioについて(ver 3.8で確認)
・asyncio.run() cannot be called from a running event loop
→RuntimeError: asyncio.run() cannot be called from a running event loopのエラー対策
<個人的な感想>
入出力機器の処理ではないので期待は余りしていなかったが、高速化には向かない。