[PAD]処理速度を検証をしよう

やりたいこと

PADで検索をすると、「PADは処理が重い」だとか「アクション数を削減したほうがよい」などが検索結果にヒットする。

本当ですか?を検証する。

 

検証

デスクトップフローの呼び出し時間

デバッグモードの場合 (フロー編集画面から実行)

呼び出し時間は体感で測定。

構成するアクションの種類によって読み込みに時間差が若干ありそうであるが、3~4秒程度で収束している模様。

アクション数 呼び出し時間(s) 備考
1 1 ~ 2
100 1 ~ 2 同じアクションの複製
100 3 ~ 4 数種類のアクションで構成
1000 3 ~ 4

公開モードの場合(フロー一覧画面から「▶」で実行)

デバッグモードより少し時間がかかる。

原因は全くわからないが、実行するたびに呼び出し時間が2秒ずつ程増えていく(なぜ?)

アクション数 呼び出し時間(s) 備考
1 4, 6, 8, 10, 12

 

サブフローの実行時間

デバッグモードの場合

サブフローの構成 アクション数 フロー数 ループ数 総アクション数 処理時間(s) 1フロー当たりの時間(s)
変数定義のみ 1 10 100 1000 86 0.086
変数定義のみ 1 1 1000 1000 118 0.118
変数定義のみ 10 1 100 1000 44 0.44
変数定義 + 入力_文字列3つ 1 1 1000 1000 117 0.117
変数定義 + 出力_5行5列テーブル3つ 1 1 1000 1000 194 0.194

 

公開モードの場合

サブフローの構成 アクション数 フロー数 ループ数 総アクション数 処理時間(s) 1フロー当たりの時間(s)
変数定義のみ 1 10 100 1000 0.14 0.00014
変数定義のみ 1 1 1000 1000 0.24 0.00024
変数定義のみ 10 1 100 1000 0.75 0.0075
変数定義 + 入力_文字列3つ 1 1 1000 1000 0.26 0.00026
変数定義 + 出力_5行5列テーブル3つ 1 1 1000 1000 1.22 0.00122

Webブラウザ操作の実行時間

デバッグモードの場合

アクション ループ数 実行時間(s) 1アクション当たりの時間(s)
Webページからデータを取得する 100 200 2
新しいChromeを起動する_新規ウィンドウ 10 18.7 1.87
新しいChromeを起動する_フォアグラウンド 10 3.8 0.38
新しいChromeを起動する_URL一致 10 3.6 0.36

 

公開モードの場合

アクション ループ数 実行時間(s) 1アクション当たりの時間(s)
Webページからデータを取得する 100 199 1.99

 

エクセル操作の実行時間

デバッグモードの場合

アクション ループ数 実行時間(s) 1アクション当たりの時間(s)
Excelワークシートに書き込む 1000 40 0.04
Excelワークシートから読み取る 1000 39.5 0.395

公開モードの場合

アクション ループ数 実行時間(s) 1アクション当たりの時間(s)
Excelワークシートに書き込む 1000 3.65 0.00365
Excelワークシートから読み取る 1000 3.66 0.00366

 

まとめ

  • デスクトップフローの呼び出しはすこぶる重く、複数回呼び出すと、呼び出し時間のみで簡単に10秒を超える。
  • サブフローの実行時間はとても速い。デバッグモードで遅くなるのは、画面の描画処理が発生するためだろう。
  • サブフローの定義数、入出力変数の追加についても、処理時間に与える影響は無視できるレベルである。
  • Webブラウザの操作はとにかく遅い。しょうがないものであると割り切り、可能な範囲でJavaScript実行アクションでの時間短縮を図りたい。
  • Excelへの読み書きは以外にも速い。