社のRails appのCI速くならないかなーと色々見てたら、bundlerのcacheが322MiBとかに育っててマジかーという気持ちになって、減らせないか眺めていた。 巨大exampleがpackageに含まれたgemを1つ見つけたのでpackage sizeを減らした。
reekのパッケージも若干大きかったので減らした。
graphiql-rails のパッケージもそこそこ大きかったので減らした。
どんなpackageのサイズがでかいのかは、次のようなコマンドで探っていった。
# Rails appのディレクトリ # まっさらなディレクトリに依存gemをインストールする $ bundle install --path /tmp/b $ cd /tmp/b/ruby/2.7.0/gems $ du * --summarize -b | sort -n | tail 6051690 parser-2.7.1.4 7982323 pg-1.2.3 8942584 debugger-ruby_core_source-1.3.8 11220971 ffi-1.13.1 11272542 oj-3.10.14 14256468 nokogiri-1.10.10 19350716 regexp_trie-1.0.2 48753509 pry-doc-1.1.0 50336923 nokogumbo-2.0.2 92561436 sassc-2.4.0
C extension系はでかくなるのは仕方ないかねえ。
parser gemが .y までpublishしているのはどうなんだろう、あったほうが便利だろうか…… 🤔
ドキュメント系gemは仕方ない感じがする……。
du
したのと同じディレクトリでgrep test_files **/*gemspec | wc -l
したら138と出てきてびっくりしている。
spec.files.select { |f| f =~ /^test/ }
みたいなのも多くて、これはspec.files
にtestが含まれていなければ実質無だったりするのだけど、git ls-files
した結果からtest/
を取り出しているようなのも多くて、これは対応すればpackage sizeを減らせそう。
地道に減らすのやろうかなあ。
twitter.com初リングフィット、きつい #リングフィットアドベンチャー #RingFitAdventure #NintendoSwitch pic.twitter.com/84hsk9GPoX
— Pocke(ぽっけ) (@p_ck_) September 25, 2020
ついにリングフィットアドベンチャーを手に入れたのでやりはじめた。 結構キツイ