Net 5 preview7 released

Time:2020-9-9

Today, A.net 5.0 preview 7 was released. This is the penultimate preview version (before moving to RC). At this point, most of the functionality should be very close to completion. Single file and arm64 intrinsics are the two functions that took the longest time to complete. Of course, preview 8 is already on track. See the. Net 5.0 preview 4 article for more version information.

ASP.NET Core and EF core are also released today.

You can download. Net 5.0 preview 7 for windows, MacOS, and Linux:

  • Installers and binaries
  • Container images
  • Snap installer
  • Release notes
  • Known issues
  • GitHub issue tracker

You need to use Visual Studio 2019 16.7 to use. Net 5.0. Now. Net 5.0 is also supported on visual studio for Mac. Install the latest version of C ා extension to use. Net 5.0 and visual studio code.

Performance

Stephen Toub recently released his performance improvements in. Net 5, the latest in his series. It covers about 250 performance-oriented pull requests, and these improvements will surprise even those who pay close attention to. Net core performance.

System.Text.Json

We have added usability features to the new JSON API. Here are the new features of preview 7 (more will appear in preview 8).

  • [significant change] the default value of value type properties can be ignored when serializing – can be used to reduce serialization and wiring costs.
  • Ability to handle circular references while serializing – it is now expected that the API shape will be final.

Garbage Collection (GC)

GC now exposes recently collected details through GC. GC.GetGCMemoryInfo Method, which returns a gcmemoryinfo structure. Gcmemoryinfo provides information about machine memory, heap memory, and recent collections, or the latest collection of the type of garbage collection you specify – transient, fully blocked, or background garbage collection.

The most likely use case for this new API is for logging / monitoring, or to indicate that the loader balancer should stop the rotation of the machine to request a full GC. It can also avoid container hard limits by reducing the size of the cache.

Another small but significant change is to delay expensive memory reset operations to low memory situations. We hope that these policy changes will reduce GC latency (and the general use of GC CPUs).

RyuJIT

Ryujit is an assembly code generator for. Net. It is designed for Intel and arm chips. Most of ryujit’s investment is focused on performance.

  • Overall improvement
    • Enable omitting some boundary checks – Credit @ Nathan Moore
    • Optimization after rewriting with C ා Enum.CompareTo – current performance is comparable to previous C + +.
    • Improved register allocation of struct register multireg lclvars
    • Improved zero redundancy deletion
    • Tail repeat improvement
    • CQ repair of structure replication based on stack
    • Remove redundant zeros and clear unused field assignments after initialization
  • Arm64 hardware internal characteristics and API optimization
    • Implement most “by element” contained functions
    • Implement fcvtxn, fcvtxn2, sqabs, sqneg, suqadd, usqadd intrinsics – ා 38010, ා 38110
    • optimization SpanHelpers.IndexOf (byte), SpanHelpers.IndexOf (char)
    • Optimization SpanHelpers.IndexOfAny (byte)
    • Optimize withLower, withupper, create, asint64, asuint64, asdouble
    • Optimize asvector, asvector128, getupper, as and withelement

Closing

Tell us about your experience with preview 7. It’s not too late to share your feedback. We’re close to the end of the release, but in fact we’re more focused on quality now because we’ve basically finished feature development.
After preview 8, we plan to release two RCSs before final release. RCSs will have “go live” licenses, which means they will be supported in production. At this point, we ran the. Net site on. Net (50% on 5.0; 50% on version 3.1) since Preview 1, which works well.

Original text: https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-7/