5

Google によると、 Zopfliはより優れた gzip 機能を提供し、すべてのブラウザーと互換性があります (解凍は同じで、圧縮にはさらに時間がかかりますが、静的ファイルのフットプリントがさらに 5 ~ 10% 小さくなります)。

だから、私はあなたが静的ファイルのgzip圧縮のためにこれを行うことができることを知っています:

<system.webServer>
 <httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files"
 dynamicCompressionDisableCpuUsage="90"
 dynamicCompressionEnableCpuUsage="80"
maxDiskSpaceUsage="100" minFileSizeForComp="2700"
noCompressionForRange="true"
sendCacheHeaders="false"
staticCompressionDisableCpuUsage="100"
staticCompressionEnableCpuUsage="80"    >
  <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" dynamicCompressionLevel="4" 
          staticCompressionLevel="7" />
  <dynamicTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="application/xml" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </dynamicTypes>
  <staticTypes>
    <add mimeType="text/*" enabled="true" />
    <add mimeType="message/*" enabled="true" />
    <add mimeType="application/javascript" enabled="true" />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="application/atom+xml" enabled="true" />
    <add mimeType="application/rss+xml" enabled="true" />
    <add mimeType="application/xaml+xml" enabled="true" />
    <add mimeType="application/xml" enabled="true" />
    <add mimeType="image/svg+xml" enabled="true" />
    <add mimeType="*/*" enabled="false" />
  </staticTypes>

</httpCompression>

...

しかし、web.config で標準の GZip ライブラリの代わりに Zopfli をどのように実装しますか?

4

4 に答える 4

6

静的圧縮用のpigzを入手できます。これは、レベル 11 の zopfli 圧縮を含む並列 gzip の代替品です。

zopfli は、動的圧縮にはおそらく有益ではありません。余分な数パーセントのデータを単純に送信するよりも、余分な数パーセントのデータを圧縮する方がはるかに時間がかかるからです。

zopfli は、何かが一度圧縮されてから、何度も送信または保存され、何度も解凍される場合を対象としています。何かが一度圧縮され、一度解凍される場合はそうではありません。

于 2013-03-06T04:47:35.743 に答える
5

Zopfli 圧縮は遅いため、アップロードする前に静的ファイルを圧縮することをお勧めします。静的ファイルには CDN と Zopfli を使用することをお勧めします。

.net を使用している場合は、私が最近 github で公開したライブラリを見てください。

https://github.com/echovoice/libzopfli-sharp

Stream クラスを派生させたので、使い方は簡単です

using (MemoryStream compressStream = new MemoryStream())
using (ZopfliStream compressor = new ZopfliStream(compressStream, ZopfliFormat.ZOPFLI_FORMAT_DEFLATE))
{
    compressor.Write(uncompressed, 0, before);
    compressor.Close();
    compressed = compressStream.ToArray(); // here is the compressed data
}

このライブラリは、Nuget で libzopfli-sharp、https: //www.nuget.org/packages/libzopfli-sharp として利用できます。

したがって、このクラスを使用して IIS 用のフィルターを作成および登録することは可能ですが、それは悪い考えであり、Web サイトのパフォーマンスが低下します。

于 2013-10-04T20:06:09.527 に答える
1

この質問は 1 年以上前に提起されましたが、いくつかの点が変更されました。これは、このページの将来の着陸者に役立つ可能性があります。

  1. まず、zopfli が gzip ファイルを作成することを強調することが重要です。したがって、web.config (または .htaccess) で暗示される分析のレベルでは、zopfli 認識はありません。

  2. これは、DEFLATE/通常の gzip 圧縮よりも少なくとも 1 桁遅いため、IIS と Apache が行っているオンザフライ圧縮の実行には含まれていません。オンザフライ圧縮のために zopfli アルゴリズムがサーバーに実装されることはまずありません。

  3. 事前に zopfli を使用して、アセットをサーバーにデプロイする前に事前に圧縮することができます。これを行う方法の 1 つは、node.js パッケージnode-zopfli を使用することです。

そして今、Telerik は、あなたの資産が zopfli の恩恵を受けるかどうか、またどの程度かを教えてくれる素晴らしいツールを手に入れました。

zopfli ソース コード ライブラリはこちらです。

Pigzは 1 つの実装であり、Krzysztof Kowalczyk がWindows に移植しました

于 2015-01-25T09:15:55.640 に答える
0

それはまだ不可能です!手動で持っているファイルを事前に圧縮できるはずです。

現在、zopfli は dll/library ではないため、それを処理するスクリプトを作成できない限り、それを使用して動的に圧縮することはできませんが、それは質問の範囲外です。

zopfli がライブラリに変換されたら、gzip.dll の代わりにそれをドロップするか、そうするためのラッパーを作成することが将来可能になると思います。

于 2013-03-05T21:21:07.380 に答える