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

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.

主站蜘蛛池模板: 仁怀市| 横峰县| 正蓝旗| 合阳县| 崇左市| 手游| 蒲城县| 临城县| 宜宾县| 阿拉善右旗| 永济市| 道孚县| 宁都县| 英德市| 龙胜| 平邑县| 元阳县| 台东县| 岢岚县| 洛宁县| 崇左市| 山东省| 伊川县| 揭西县| 丰城市| 伊金霍洛旗| 神农架林区| 江达县| 运城市| 浪卡子县| 巫溪县| 弥勒县| 固镇县| 济南市| 金湖县| 遵化市| 共和县| 临湘市| 星子县| 牙克石市| 清水县|