バタイユゲーム支援ツール強化版をthreadingを使って高速化できないか検討してみた。
結論から言うと難しい。
後の為に、試した事を以下にメモしておく。
1.基本的な考え方
前回の高速化検討で使ったテスト用EXCELシートを名前を変えて2つ使う。
pythonプログラムから2つのEXCELシートをthreadingを使って動かす。
但し、各々のEXCELシートの処理回数は半分にする。
→前回の12回の処理を6回ずつ分けて行う。
2.pythonプログラム
下図のようにして計測すると0.416秒となる。
単純に12回処理した場合の0.416秒と同じであるが、計算結果に問題がある。
[ ]内にNoneのデータがある点が問題である。
threadingはメモリを共有するので2つの処理に共通の変数が書き換えられた為と考える。
3.参考資料
下記のWEBページにお世話になりました。ありがとうございます。
・Pythonでthreadingを使った非同期処理
・Python入門 (3) -マルチスレッド処理
・Nginxのアーキテクチャを理解する
<個人的な感想>
処理変数の排他制御を考える必要があるが、面倒な処理に変えても処理時間が
短縮できないのでは意味がない。その為、この方法も見送りにする。