加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何实现zopfli以获得更好的gzip压缩?

发布时间:2020-12-16 03:59:01 所属栏目:asp.Net 来源:网络整理
导读:Google says Zopfli提供了更好的gzip功能,并且它与所有浏览器兼容(解压缩是相同的,压缩需要更长的时间,但是你可以获得额外的5-10%的静态文件占用空间) 所以,我知道你可以为静态文件的gzip压缩做到这一点: system.webServer httpCompression directory="%Sy
Google says Zopfli提供了更好的gzip功能,并且它与所有浏览器兼容(解压缩是相同的,压缩需要更长的时间,但是你可以获得额外的5-10%的静态文件占用空间)

所以,我知道你可以为静态文件的gzip压缩做到这一点:

<system.webServer>
 <httpCompression directory="%SystemDrive%inetpubtempIIS Temporary Compressed Files"
 dynamicCompressionDisableCpuUsage="90"
 dynamicCompressionEnableCpuUsage="80"
maxDiskSpaceUsage="100" minFileSizeForComp="2700"
noCompressionForRange="true"
sendCacheHeaders="false"
staticCompressionDisableCpuUsage="100"
staticCompressionEnableCpuUsage="80"    >
  <scheme name="gzip" dll="%Windir%system32inetsrvgzip.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中实现Zopfli而不是标准的GZip库?

解决方法

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,before);
    compressor.Close();
    compressed = compressStream.ToArray(); // here is the compressed data
}

该库可在Nuget上以libzopfli-sharp,https://www.nuget.org/packages/libzopfli-sharp获得

因此,可以使用此类为IIS创建和注册过滤器,但这将是一个坏主意,并使网站性能更糟.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读