pythonベースのコンパイル言語はcythonの他にnumbaがあるので、
高速化案2として試してみた。
1.結論
簡単に変更できたが処理時間に変わりがなかったので、見送る事にした。
(1)処理時間を計測したEXCELシート
(2)処理時間
変更前(python)は10.2秒。
変更後(一部をnumbaに変更し、pythonプログラムも一部変更)は10.3秒。
3.具体的な変更方法
(1)前提条件
開発環境はpipenv+JupyterLabを使う。
(2)numbaのインストール
(3)最終的な変更内容
(A)JupyterLabでnumbaを有効にする。
下記の命令を初めに実行する。
(B)1つの関数をnumbaにする。(cythonの場合と同じ関数)
変更は下線部分1ケ所を追記しただけ。
(C)pythonプログラムの一部変更
cythonの場合と同じ変更とEXCELデータの変更(文字データ化)を行う。
4.参考資料
下記のWEBページにお世話になりました。ありがとうございます。
・Pythonで高速化処理!numbaとCythonの実行速度を比較してみた。
・numbaでpythonを高速化する
・numbaでざっくりPython高速化
・Python を高速化する Numba, Cython 等を使って Julia Micro-Benchmarks してみた
<個人的な感想>
cythonに比べて簡単に変更できたが、思ったよりも高速化が感じられない。
乱数の結果により士気チェック処理が追加になる場合があるなど
同一条件の比較とは言えないが、処理時間が余り変わないのは他に原因があるのかもしれない。
考えられるのは2つである。
1)検索処理でfor文による一致判定をしている事が処理時間を長くしている。
2)VBAの処理時間が長いので、python側の処理を早くしても効果がない。
次回は1)の対策を行ってみる。