web-dev-qa-db-ja.com

gzipのパフォーマンスを向上させるために推奨される最小オブジェクトサイズは何ですか?

私はページ速度の表示時間の改善に取り組んでおり、その方法の1つはWebサーバーからコンテンツをgzipすることです。

Googleの推奨

gzip圧縮は大きなリソースに対してのみ有益であることに注意してください。圧縮と解凍のオーバーヘッドと遅延のため、特定のサイズのしきい値を超えるgzipファイルのみを使用する必要があります。 150〜1000バイトの最小範囲をお勧めします。 150バイト未満のファイルをgzip圧縮すると、実際にファイルを大きくすることができます。

プロキシとCDNにネットワークを使用して、 Akamai を通じてコン​​テンツを提供します。彼らが私に言ったこと:

Akamaiがエンドユーザーに送信する際に要求されたオブジェクトを圧縮する最小サイズについての質問のフォローアップ:最小サイズは860バイトです。

私の返信:

アカマイの最小サイズが860バイトである理由は何ですか?そして、たとえば、AkamaiがFacebookに提供するファイルの場合はなぜではないのですか? (以下を参照)Googleは、より積極的にgzipすることを推奨しています。そして、これは、最も頻繁にヒットするのが860バイト未満のAJAX呼び出しである当社のサイトでは適切なようです。Facebook headers screenshot disputing Akamai's statement

アカマイの対応:

860バイトが圧縮の最小サイズである理由は2つあります。(1)860バイト未満のオブジェクトを圧縮するオーバーヘッドは、パフォーマンスの向上を上回ります。 (2)いずれにせよ、860バイト未満のオブジェクトは単一のパケットを介して送信できるため、それらを圧縮する説得力のある理由はありません。

だから私はいくつかの事実を確認するためにここにいる。パケットサイズによる860バイトの制限はこの推論の終わりですか?トラフィックの多いサイトが帯域幅コストを節約するためだけに150バイトの制限までこれをプッシュするのはなぜですか(CDNは料金をOriginからオフロードされた帯域幅に基づいているため)、そうすることでパフォーマンスが向上しますか?


7/9/12更新:私は尋ねました Steve Souders すでにパケットよりも小さいgzip応答のパフォーマンスの向上があり、推奨されるものは何かgzipのパフォーマンスを向上させるための最小オブジェクトサイズ。これが彼の回答です。

メールありがとう。サイズは1〜5Kの間です。 Apacheにはデフォルトがありますが、それが何であるか忘れています-それは良いガイドです。

F5アプライアンスで圧縮を行うので、1Kの間にAJAX呼び出しがかなりあるので、それを約350バイトに減らします。私たちのウェブサイトで350バイト未満のAJAX呼び出しはすべて約70バイトダウンしています... Googleの推奨値よりも少ないため...にフォールバックしているようです。あなたのウェブサイトを知り、あなたのコードに基づいて調整してください

本番でしばらくF5アップデートを実行した後、この投稿に戻ります。パフォーマンス上のメリットはほとんどないと思いますが、アカマイのサービスが少ないため、アカマイのコストを少し下げます。

30
utt73

帯域幅コストの利点について話しているだけでなく、ブラウザでのページ読み込みのパフォーマンスも比較しています。それらは2つの異なるものです。

リクエストをgzipするときはいつでも、実際に圧縮(あなたの場合はF5)を行う必要があり、クライアント(または技術的にはプロキシ)が解凍を処理する必要があります。これにより、両端のハードウェアの能力に応じて、リクエストのレイテンシが長くなります。

「gzipの最小サイズ」は、Webブラウザーエクスペリエンスの観点からは役に立たない小さなデータの圧縮/解凍に必要な時間に基づいています。帯域幅の節約についてのみ話している場合は、最小値をできるだけ低く設定してください。ただし、エンドユーザーにパフォーマンスの向上をもたらさない可能性があることを理解してください。

2
Nicholas H