官术网_书友最值得收藏!

Performance improvements

Some of the more interesting changes in .NET Core 2.0 are performance improvements over the original .NET Framework. There have been tweaks to the implementations of many framework data structures. Some of the classes and methods that have seen speedy improvements or memory reduction include:

  • List<T>
  • Queue<T>
  • SortedSet<T>
  • ConcurrentQueue<T>
  • Lazy<T>
  • Enumerable.Concat()
  • Enumerable.OrderBy()
  • Enumerable.ToList()
  • Enumerable.ToArray()
  • DeflateStream
  • SHA256
  • BigInteger
  • BinaryFormatter
  • Regex
  • WebUtility.UrlDecode()
  • Encoding.UTF8.GetBytes()
  • Enum.Parse()
  • DateTime.ToString()
  • String.IndexOf()
  • String.StartsWith()
  • FileStream
  • Socket
  • NetworkStream
  • SslStream
  • ThreadPool
  • SpinLock

We won't go into specific benchmarks here because benchmarking is hard and the improvements you see will clearly depend on your usage. The thing to take away is that lots of work has been done to increase the performance of .NET Core. Many of these changes have come from the community, which shows one of the benefits of open source development. Some of these advances will probably work their way back to a future version of the regular .NET Framework too.

There have been improvements made to the RyuJIT Just In Time compiler for .NET Core 2 as well. As just one example, finally blocks are now almost as efficient as not using exception handling at all, which is beneficial in a normal situation where no exceptions are thrown. You now have no excuses not to liberally use try and using blocks, for example, by the checked arithmetic to avoid integer overflows.

主站蜘蛛池模板: 海安县| 左贡县| 浪卡子县| 奉化市| 金秀| 宽甸| 黄梅县| 稷山县| 绥德县| 苏尼特右旗| 凤冈县| 河间市| 达拉特旗| 清丰县| 安福县| 商丘市| 宜丰县| 衢州市| 龙江县| 牡丹江市| 启东市| 调兵山市| 调兵山市| 固安县| 舟曲县| 宁南县| 元朗区| 威信县| 贵溪市| 鄂尔多斯市| 教育| 新津县| 鄢陵县| 吴桥县| 石阡县| 铁岭县| 黄平县| 辽源市| 津市市| 花莲县| 青田县|