以下の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/10/29/210447より取得しました。
感想
- フロントエンドのパフォーマンス改善を2024年現在の価値観にアップデートできたのがよかった
顧客が本当に必要だったもの - パフォーマンス改善編
RDBのパフォーマンス改善
- 仕様を変えるのが一番負荷にきく
- 複雑な仕様がDBパフォーマンスに影響を与える
- 例:購入ボタンが重い
- さまざまなAPIアクセスを1つのトランザクションで
- 全部を同時にやる必要はない
- 購入だけしてあとは非同期でとか
- ロングトランザクション対策
- 先にできること後で出来ることを分割する
- 全部同じテーブルだと分割できない
- ダメな設計の上には何を乗せてもダメ
- テーブルを分割
- 例:検索結果の総件数
count(*) が重い
- Googleは昔出してたけど今はない
- 仕様を削るのが一番きく
- 例:最終ページの番号
- ページングの最終ページが何ページか出す
- 最後のページにアクセスされると重い
- limit offsetのoffsetがでかいと重い
- order逆にしてとるといい
『最高のチューニング』をしないためにすること
インフラのパフォーマンス改善
- 2011年のアプリのチューニング
- diskにアクセスしたら負け
- ハードディスクなので今のSSDと比べると100倍違う
- メモリにおさまらないと一時的にdiskに書く
- 遅くなると処理がたまってコネクション数も増えていく
- 2024年ならお金をつぎ込んで解決できる
- ただsどこかで限界が来る
- お金をかけずに解決する方法もある
- お金で時間を稼いでその間に対処する
- 負荷試験をやるといい
- リリース後に発生する問題の9割は分かる
- ゴールを決めてからやらないと何を試験してるのか分からなくなる
- シナリオも考えて負荷を決める
- リリース後長期運用してる時に突然悪化することも
- DBのデータが溜まってきて実行計画が変わる
- 使ってほしいindexが使われなくなる
re: 光を超えるためのフロントエンドアーキテクチャ
フロントエンドのパフォーマンス改善
- 一番早いのはCDNから静的htmlを返すこと
- マウスホバーでpreloadとかするとはやいがいろんなコストとの兼ね合い
- 2018と2014の違い
- 2024のフロントエンドのゴール
- CWV的にLCPを2500ms以内にしたい
- サーバで1.5秒、フロントで1秒くらい
- html/css/jsのロードパースが重い(200msくらい)
1mbとかになると1秒とかかかる
- メディア経過管理画面かなど特性によって目指すところが違う
- キャッシュなしの初回ロードか
- 初回ロード後のインタラクションか
- チューニング
- とにかく手前でキャッシュに当たって返したい
- リクエストに依存がある回数でウォーターフォールが大きくなってしまう
- 並列にできるならフロント視点では問題はない
- LCPの確定までをEdge Cacheに置きたい
- 部分的に静的サイトにしたい
- キャッシュパージはとにかく高速にしたい
- アプリケーション側でキャッシュを管理できると嬉しい
以上の内容はhttps://ozaki25.hatenadiary.jp/entry/2024/10/29/210447より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14