#4511

重すぎる一秒


先日ちょっと話題にしたこのブログのページロードがかなり遅い問題。
結局あのあとモバイル専用表示のためにjQueryをあらかじめ読み込む必要があったり、
CSSを遅延読み込みするとページ構成が崩壊してしまったりと不具合が発生したため
ヘッダーをいじったあとすぐに戻してしまったのですが、
そのあと他にもいろいろ見ていたら、
どうやらデータベース問い合わせ時間が一番の遅延の原因になっていることがわかりました。

今、このブログは『Yet Another Related Posts Plugin (通称:YARPP)』というプラグインで
各記事のフッターに4本の関連記事の概要を表示しており、
さらにWP関数によってその後ろに3本のランダム記事の概要も表示されるようになっていて、
合計7本への概要付きリンクを生成しています。
そのプロセスでWordPress内部処理をくぐってきているので
どういう処理が発生しているのかは分かりませんが、
概要取得のために記事一覧データベースで検索していれば遅くなって当然だろうなと。
実際にphpmyadminから12,000行のDBで検索をかけると応答にだいたい0.4秒前後かかっており、
それを8倍するとPageSpeed Insightsで表示されたサーバー応答速度とおおよそ一致します。
試しに関連記事表示部分をまるっと削ると驚くほど早く表示されました。

しかし、だからといって関連記事表示を安易に廃止するわけにもいかず。
このリンクはブログ内の各記事を繋げる重要な役割を担っていて、
早い話がこの機能を消してしまうと各記事がそれぞれ孤立してしまうんですよね。
一応タグアーカイブや各種一覧で繋がっていると言えなくもないのですが……
それぞれの記事を蜘蛛の巣のように繋げるというのは
三代目に移転するにあたっての大きなコンセプトというか野望のひとつでもあるので、
この機能は削りたくないというのが正直なところです。

というわけで、この関連記事フッター自体を遅延読み込みするのが今のところ一番良さそう。
ただ、画像の読み込み遅延プラグインはいろいろとあるのですが
データベース読み込みの一部を遅延となるとなかなか難しそう……。
この辺は例によってjQuery/Ajaxが鍵になってくるのでしょうが、
今の自分の知識だとそもそも完成がイメージできず、実現はまだまだ先になりそうです。
まぁ、そもそも7本も表示する必要があるのかという疑問もあるのですが。
出来る範囲でもう少しいじってみようと思います。

さて今日は02時半就寝08時15分起床、
給料日は淡々と過ぎ去り帰宅前にコンビニで給料全額を引き出してお菓子を買って帰宅。
連休0日目ということで最近の我が家のマイブームである『NINTENDOパズルコレクション』にて
Dr.Marioで連戦していましたが、自分の成績は今ひとつでした。
どうも連鎖とウイルス除去の両立が出来なくて悩ましい……。
自分は攻撃を受けたあとの処理が苦手らしく、
むしろウイルスの少ない終盤にあわてふためくことが多いようです。
この辺を練習して克服すればもう少し勝率は上がるかな?
ちなみにパネポンではローカル最下位を自負しているのでなあなあに参戦していたのですが、
こちらは逆にかなりの好成績でした。
周りが上手いとオジャマパネルが巨大になるためその消化に時間がかかり、
消化中はミスになりにくいため結果的に終盤まで残りやすいんですよね。
自分の攻撃は大した連鎖にならないので相手フィールドにはオジャマは溜まりにくく、
結果的にミスになる機会は攻撃者の方が多くなるため、
あとは集中力切れを待つという感じのカウンター戦法になっています。
そのため「自分の力で勝った」という実感が皆無なのですが……。
このゲームでコンスタントに大連鎖を連発できるようになるのにどれほどの練習が必要なのか。

まぁ、ともあれ週末二連休は気が向いたら上2タイトルの練習でもしつつ、
諸々のことについてコマを進められたらなと思っています。