精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

ASP.NET Core 文件響應壓縮的常見使用誤區

asp.net core 文件響應壓縮的常見使用誤區

 

誤區1:未使用brotil 壓縮

  幾乎不需要任何額外的代價,brotil 壓縮算法可以幫助你的網站提升約 20% 靜態資源加載性能。

  同時啟用 gzip / brotil 壓縮

  gzip 有更好的 user-agent 兼容性,而 brotli 有更好的性能。

  所以我們通常需要在 asp.net core 網站中同時啟用這兩種壓縮。

  如何區分 gzip 壓縮和 brotli 壓縮

  網站啟用 brotli 壓縮時,服務器請求返回頭 content-encoding 中會包含 br 字樣,否則是 gzip。

 

誤區2:使用 fastest 級別的 brotli 壓縮

  如果你閱讀并參考了微軟官方文檔或者其他中文資源,比如:

  asp.net core 中的響應壓縮 - ms doc

  在asp.net core中使用brotli壓縮- cnblogs

  那么你可能會在代碼中像下面這樣使用壓縮功能:

  寫法1:使用默認的壓縮行為(框架將隱式添加 brotli 和 gzip 功能)

public class startup
{
  public void configureservices(iservicecollection services)
  {
      services.addresponsecompression();
  }

  public void configure(iapplicationbuilder app, ihostingenvironment env)
  {
      app.useresponsecompression();
  }
}

  寫法2:顯式添加壓縮功能

public void configureservices(iservicecollection services)
{
  services.addresponsecompression(options =>
  {
      options.providers.add<brotlicompressionprovider>();
      options.providers.add<gzipcompressionprovider>();
      options.providers.add<customcompressionprovider>();
      options.mimetypes = 
          responsecompressiondefaults.mimetypes.concat(
              new[] { "image/svg+xml" });
  });
  services.configure<brotlicompressionprovideroptions>(options => 
  {
      options.level = compressionlevel.fastest;
  });
}

  寫法3:自定義 brotlicompressionprovider

public class brotlicompressionprovider : icompressionprovider
{
  public string encodingname => "br";
  public bool supportsflush => true
  public stream createstream(stream outputstream)
  {
         return new brotlistream(outputstream,compressionlevel.fastest);
  }
}

  不幸的是,以上三種寫法都沒有發揮出 brotil 壓縮算法的優勢。

  它們的共同點是均使用了 compressionlevel.fastest壓縮級別。

  而在 compressionlevel.fastest 級別時,brotil 與 gzip 壓縮性能幾乎無異。

  參考:introducing support for brotli compression

 

誤區3:使用 optimal 級別的 brotli 壓縮

  compressionlevel 只有三個枚舉值:fastest / nocompression / optimal。

  既然 fastest 級別沒有用,那我們只能換成 optimal 了。

最佳實踐:使用 4 或 5 級別的 brotli 壓縮

  在introducing support for brotli compression這篇文章中,作者對不同級別 brotil 的壓縮耗時做了評測,也就是下面這幅圖。

  觀察這副圖,brotil 的壓縮質量其實有 1~11 個級別。

  那我們如何自定義 brotli 的壓縮級別呢,答案是直接將級別對應的整數轉成 compressionlevel 枚舉。

 盡管這種寫法看起來十分古怪,但通過考察 .net 源碼,可以確鑿這種寫法是可行的。

以上就是asp.net core 文件響應壓縮的常見使用誤區的詳細內容,更多關于asp.net core 文件響應壓縮的資料請關注碩編程其它相關文章!

下一節:.net core 使用阿里云分布式日志的配置方法

asp.net編程技術

相關文章