rubocopがもっさりするときは除外ディレクトリを見直してみるとよいかもしれない

前のエントリで書いたrubocopがもっさりする問題を調べてみると、どうやら走査する必要のないディレクトリのファイルまでチェックしてしまっていて非常に遅くなっているのが原因だったようだ。

なお、rubocopは**/*で終わる文字列のパターンをディレクトリを除外する設定と認識して先に除外する、ということをやっているため、ディレクトリを指定するか、他のパターンで指定するかどうか、というのはパフォーマンスにけっこうな影響があるようだ。

AllCops:
  Exclude:
    - 'public/**/*'
    - 'tmp/**/*'
    - 'log/**/*'

あたりは最初に自動生成したファイルには含まれていないが、railsプロジェクトであれば入れておくとよいようだ。

vendor/**/*だけは、Rubocopのdefaultの設定に含まれているので何もしなくても除外してくれる。tmp/**/*もdefaultでこの候補に入れてくれるとうれしいケースが多いんじゃないかと思いつつ、どう提案しようかな... (今回は、tmp以下に大量にファイルがあるが対象から除外されていないのが遅い原因だった。)