mala氏のプレゼンから抜粋

間違ったことをしなければ極端に遅くなることはない。

  • 見た目の変更: styleで。
  • 大幅な見た目の変更:classNameで。
  • 追加と挿入: appendChild/insertBeforeで。
  • 大幅な書き換え:innerHTMLで。

チューニング

memcachedを使うように。

memcachedの高速化 #1

CPANモジュールCache::Memcachedを使用
get_multiメソッドを使うと複数のキーを一度に取得できる
=> 100件の場合で一件ずつ取得するより30%ほど速くなる

memcachedの高速化 #2

保持期限を長めにしてヒット率を上げる
代わりにクローラの更新タイミングで確実にキャッシュを消す

アクセス時間の視覚化

フロントでbenchlogを取得
=> Apache2の機能
=> 転送にかかった時間をマイクロセカンドで記録
=> ユーザーの回線速度に影響される

ピンポイントにログを取る

特定のフェーズにかかった時間
キャッシュのヒット率

UIに適したアルゴリズムとは?

全体が高速に完了するよりも
=> ゆっくりでもキャンセル可能な方が良い
=> 中断、再開が可能なアルゴリズム
=> 処理時間の予想が可能なアルゴリズムが必要