Octopress/Jekyllの実行時間をもう少しなんとかする

前回のとったプロファイルについて、Jekyllの内部で記事リスト(site.posts)に何度も何度もsortをかけているようなのが気にかかっていた(Jekyll::Site#site_payload)。しかしコードをもう少し読まなければ手を入れられるものか判断できなかったのでそのままにした。

今回はその部分にも手を入れてみた。改めてJekyll本体を読んでみたところ、sort済みの記事リストを使いまわしても問題ないように思えたので。

そのついでにPostListのコードをいくらかマシなものにしようとしてみた、のだが、これはマシになっているだろうか?

ともあれ、sortを呼び出す回数が減ったことで、もう少しだけ実行時間が短くなった。まずは前回の状態での実行結果:

87.50s user 7.78s system 99% cpu 1:35.31 total 88.26s user 8.07s system 99% cpu 1:36.35 total 87.93s user 7.95s system 99% cpu 1:35.90 total

新しいプラグインを使ったときの実行結果:

65.29s user 7.98s system 99% cpu 1:13.30 total 65.62s user 7.92s system 99% cpu 1:13.57 total 65.35s user 8.14s system 99% cpu 1:13.52 total

平均で1:35.83→1.13.46となり、前回の最終段階から約23.4%減となった。

コードはともかく改修内容は本体に取り込んでほしいところだけど、うーん、これではまだ難しいかなあ……。