丹生屋★海外投資通信簿

米国株を中心に投資してるDiary

口座やマネーサービスの残高を自動取得するプログラム開発 (7)

f:id:nibunoya:20210117101728p:plain

 

概ねプログラムができました。

後は使い勝手の面を調整しました。

 

マルチスレッドを、4スレッドのthreading でやってきましたが、Pythonだとそれほど早くならないとの情報があり、concurrent.futuresでやってみることにしました。

 

その結果、

4スレッドのthreading : 平均約50秒

4スレッドのconcurrent.futures : 平均約50秒

毎回秒数は変動します。短時間となった回数が少し多くなった気がしますが、ほとんど変わりません!

そこで、スレッド数を増やしてみました。

 

8スレッドのconcurrent.futures : 55~57秒

増えてるやん~。

CPU負荷がずっと100%になっています。パワーの上限なのかな。

 

次に、少し減らして、

6スレッドのconcurrent.futures : 46~47秒

CPUはもう少し落ち着き100%の中に90%となる時間もあり、余裕ができたようです。

 

これ以上は劇的に下がらなさそう。

後は、得られた出力情報を、いつものエクセルファイルに転記の作業。

こちらは、現時点で2分半かかっています。

自動化前は、webサイトの画面からコピペして13分ほどだったので、10分も短縮できました。

 

その後は、バグ取りやら動作の安定化やらで、作業の時間がかかりました。

結局ウェルスナビだけは、動作が安定しません。待機時間の調整が問題かな。

データがとれなければずっと待機、として解決したように見えます。

また、出力するデータの並び順を変えたり、転記先のエクセルのフォーマットを修正して、コピペしやすくなり、転記作業が大きく時短しました。

 

次の改善点

 ・取得するサイトの増加

 ・ID、パスワードのセキュリティ処理