レスポンス時間短縮の為の作業

2009/11/25 21:00 少し追加訂正

当たり前だけど、読み込みの遅いweb-pageはまずい。でも、どうやって改善したらいいかわからないから放置しがち。

で、わからないなりに、調べたり、手を動かしたり、放置してみた。

1.ホスティング側の問題?

レンタルサーバーはdreamhostを使ってるけど、パフォーマンスに波があるという話を聞いた。

計測方法? serverでuptimeを定期的に取って確認する?

現状 cronでuptimeを計測したのを見てると、2から8くらいまでの数値になっている。5前後が結構多い。これとresponseタイムの関係が、自分の所でまとまっていない。

対策  よくわかない。サーバーの引っ越しは大変そう。情報も出てこないので、放置。

2. wordpressの問題?

wordpressは、mysqlにデータを入れておいて、それを元にphpでhtmlを作るもの。このプロセスが遅い場合は?

計測方法? わからん。1と2を合わせたものが、対象URLのdocumentの読み込み時になると考えていいのかな。

対策 wordpress supercacheを使う。(日本語URIを使うと、動かないという話で敬遠してたけど、先ほどやってみたら動いた、手元では読み込み時間が1000ms以下になった 全然違った)。お手軽に静的ファイルをcacheに置く事ができた。
毎回、cacheを作ってるようだ、、これではだめ、、

3. renderingの問題?

ハイパフォーマンスWebサイトという本を見ながら、YSlowを入れて、いろいろやってみた。

  1. httpリクエストを減らす。 (F判定なんだけど、google 絡みのが大いので削れない、css-spriteはやれてない)
  2. CDNを使う (僕には関係ない)
  3. expireヘッダを設定する
    1. ExpiresActive On
    2. <FileMatch “.\\.(gif|jpg|js|css|png)$”>
      ExpiresDefault “access plus 10 years”
      </FileMatch>
    3. js,cssなどで変更のあるものは、version番号が付いてるので、これで良しとする。
  4. html, javascritp, sytlesheetなどをgzipする (.htaccessで、SetOutputFilter DEFLATEと書いた)
  5. stylesheetを先頭に置く。 (stylesheetを<head>に持って行った)
  6. javascriptは最後に置く。 (<head>で読む必要はないので、<body>の最後に移した)
  7. stylesheetとjavascriptを外部ファイル化する (外部ファイルにして、まとめるものはまとめて、一ファイルにした)
  8. DNSルックアップを減らす。 (やれることはない?余分な外部サイトへの呼び出しを外していく?)
  9. javascriiptを縮小化する (jsminを使って縮小した)
  10. redirectを避ける (いくつか、被リンクのものを引き継いでるので、その分は放置)
  11. scriptの重複を避ける (wordpressのwp_enqueue_scriptで対応できるそうなんだけど、手で調整して重複を消した)
  12. ETagの設定を変更する (ETagの必要性がなさそうだったので、.htaccess に FileETag noneと入れた)
  13. ajaxをcache可能にする (ajaxは使ってない)

とりあえず、1.2の問題は、wordpress-supercacheの導入で良しとした。(Firebugで見る限り、1000ms以下 違った。)

それで、計測方法に、google analyticsを使う。 で完成といきたかったけど、上手くいかなかった。残念。

This entry was posted in 実施例. Bookmark the permalink.

One Response to レスポンス時間短縮の為の作業

  1. Pingback: レンタルサーバー選び « 継続日記

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt="">