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

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.

主站蜘蛛池模板: 朝阳区| 大石桥市| 朔州市| 武定县| 萨嘎县| 江城| 宁陵县| 乐亭县| 博野县| 静乐县| 德州市| 广昌县| 吉林省| 兴宁市| 扶沟县| 河曲县| 灌云县| 青神县| 栖霞市| 收藏| 乐安县| 涿州市| 七台河市| 齐河县| 集贤县| 南昌县| 繁昌县| 乐山市| 老河口市| 望谟县| 宁乡县| 垫江县| 罗甸县| 靖远县| 独山县| 江安县| 桓台县| 吐鲁番市| 龙江县| 台南市| 邓州市|