読者です 読者をやめる 読者になる 読者になる

pygmentsが原因でjekyllが重くなってた

jekyllの実行が20秒〜30秒くらいかかってさすがにかかりすぎなので原因を調べてみたらコードハイライトに使ってるpygamentsが原因だった。

今現在gemでインストールできるjekyllはコードハイライトにalbinoっていうモジュールを使ってみるみたいで、こいつはハイライトするコードブロックがあるあるたびにpygamentsプロセスを立ち上げるらしく、それが原因で超重くなってたみたい。

コードハイライトしてる部分は280箇所くらいあったから一回の変換で280回プロセスが立ち上がってたみたいなんでそりゃ遅くなるよと思った。

githubの最新を見たらalbinoじゃなくてpygments.rbを使うように変更されてて、こいつはalbinoと違ってFFIを使って高速に動作するらしい。以下のコミットで変更されてる。

https://github.com/tombell/jekyll/commit/b2a1d61c0407d6612450fe7d90a9a1a397aaa28e

これにしたら2、3秒くらいになった。

ただしまだRubyGemsにはあがってないのでgithubから直接インストールする必要がある。bundlerでインストールするならGemfileに

gem 'jekyll', :git => 'https://github.com/mojombo/jekyll.git'

って書く。そのうちRubyGemsにあがると思うけど。