Entity Framework Core 6.0 Preview 4 Focuses on Performance
The new Entity Framework Core 6.0 Preview 4 is described as a "performance edition," with the dev team turning from years-long concerns -- such as catching up to the old Entity Framework and adding new features -- to focus on speed.
To provide inspiration and a hard-target perf goal, the team used Dapper, a simple, lightweight object mapper for .NET. Specifically, the team used a GitHub issue -- Improve EF Core performance on TechEmpower Fortunes #23611 -- referring to performance benchmarks. It says: "The goal for EF Core 6.0 is to get the EF Core performance to match that of Dapper on the TechEmpower Fortunes benchmark. This is a significant challenge which may not be fully achieved in EF Core 6.0. Nevertheless, we will get as close as we can."
The "short and sweet" result summary:
- EF Core 6.0 performance is now 70% faster on the industry-standard TechEmpower Fortunes benchmark, compared to 5.0.
- This is the full-stack perf improvement, including improvements in the benchmark code, the .NET runtime, etc. EF Core 6.0 itself is 31% faster executing queries.
- Heap allocations have been reduced by 43%.
Optimizations fully detailed in a May 25 blog post published during the Microsoft Build 2021 developer conference include:
- Pooling and recycling, DbContext and beyond
- Logging suppression
- Opting out of thread-safety checks
Going forward, "EF Core 6.0 will also deliver other types of performance improvements, including various SQL generation improvements and optimized models, which should improve startup times for applications with lots of entities. We also have plans for continued future improvements, especially in areas of EF Core which weren’t covered in this optimization cycle (e.g. the update pipeline, change tracking)."
Developes wanting to dig deeper into the new performance initiatives can consult:
David Ramel is an editor and writer for Converge360.