blog
jekyll ではじめる Static Web Site シリーズJekyllの関連記事表示とGSLを使った処理時間の短縮
この記事は書かれてから1年以上経過しており、内容が古い場合があります。
はじめに
Jekyllは関連記事も表示できますが、そのまま使うだけだと処理に時間がかかります。処理時間を高速化するためにGSL(GNU Scientific Library)を入れて処理時間を計測してみました。
関連記事を表示する
Jekyllに関連記事用の設定を加え、有効化します。
_config.yml
lsi: true
post.html
テンプレート側はこんな感じ。
{% for post in site.related_posts limit:5 %}
<li><a href="{{ BASE_PATH }}{{post.url}}">{{ post.title }}</a></li>
{% endfor %}
タスクの処理速度を計測する
jekyllの処理にどの程度かかっているのか計測してみます。Gruntを介してJekyllを処理しているのでtime-gruntというモジュールを使って計測しました。インストール方法はモジュールのページを参照。
require('time-grunt')(grunt);
で読み込んでしまえば勝手に実行されます。
処理結果
余計なものも含まれていますが3行目のjekyll:prev 13.1s
が計測結果です。 20本程度でこの時間は「だめよ〜ダメダメ」さすがに遅すぎです。
Execution Time (2014-10-02 05:06:44 UTC)
sass:prev 2.9s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 13%
jekyll:prev 13.1s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 58%
notify:serve 301ms ▇▇ 1%
watch 6.1s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 27%
Total 22.5s
GSLを入れて高速化
GSLって何よって感じなんですがよく理解していません。
GNU Scientific Library (GSL) は、ANSI Cで記述された科学技術計算関数のライブラリである。オープンソースであり、GNU General Public Licenseのもとで配布されている。
GSLをインストール
とりあえずインストールしましょう。ここでも便利なHomebrewを使います。
$ brew install gsl
gemの設定
bundlerを使っているのでGemfile
に追記します。
source "https://rubygems.org"
gem "sass"
gem "bourbon"
gem "neat"
gem "rb-gsl"
gem "jekyll", "~> 2.4.0"
bundlerでインストール
すでに運用中の環境ならインストールコマンドだけでさっとインストール。
$ bundle install
再び計測
jekyll:prev 4.7s
なんと10秒弱も速くなりました。GSLすばらしいですね。
Execution Time (2014-10-02 05:26:45 UTC)
sass:prev 3.1s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 23%
jekyll:prev 4.7s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 35%
notify:serve 313ms ▇▇▇▇ 2%
watch 5.1s ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 38%
Total 13.3s
めでたしめでたし。