Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 11 beta1 #22

Merged
merged 22 commits into from
Nov 5, 2024
Merged

Version 11 beta1 #22

merged 22 commits into from
Nov 5, 2024

Conversation

fiseni
Copy link
Owner

@fiseni fiseni commented Nov 5, 2024

This is a massive PR. A ton of work was done and I'm quite happy with the results. I think it's ready to be published as a beta version.

  • Refactored and rebuilt the internals from the ground up.
  • Reduced the memory footprint drastically.
  • Negligible to no overhead for specification evaluations.
  • Better support for extending specifications.

The new version reduces the memory footprint drastically. The overhead of the library is now negligible and statistically insignificant. Here are the benchmark results of ToQueryString() for various queries. Refer to the Benchmarks project for more benchmarks.

Type:

  • 0 -> Empty
  • 1 -> Single Where clause
  • 2 -> Where and OrderBy
  • 3 -> Where, Order chain, Include chain, Flag (AsNoTracking)
  • 4 -> Where, Order chain, Include chain, Like, Skip, Take, Flag (AsNoTracking)
Method Type Mean Error StdDev Ratio Gen0 Gen1 Allocated Alloc Ratio
EFCore 0 81.55 us 0.686 us 0.608 us 1.00 10.0098 0.9766 82.54 KB 1.00
Spec 0 78.18 us 0.472 us 0.441 us 0.96 10.0098 0.9766 82.53 KB 1.00
EFCore 1 92.62 us 0.350 us 0.310 us 1.00 10.2539 0.9766 84.77 KB 1.00
Spec 1 92.92 us 0.252 us 0.236 us 1.00 10.2539 0.9766 84.84 KB 1.00
EFCore 2 95.48 us 0.654 us 0.580 us 1.00 10.2539 0.9766 86.03 KB 1.00
Spec 2 98.36 us 0.775 us 0.687 us 1.03 10.2539 0.4883 86.12 KB 1.00
EFCore 3 106.62 us 0.684 us 0.606 us 1.00 10.7422 0.4883 90.35 KB 1.00
Spec 3 109.56 us 0.700 us 0.655 us 1.03 10.7422 0.4883 90.64 KB 1.00
EFCore 4 147.47 us 0.619 us 0.483 us 1.00 13.1836 0.9766 110.78 KB 1.00
Spec 4 150.82 us 0.538 us 0.449 us 1.02 13.1836 0.9766 111.32 KB 1.00

@fiseni fiseni merged commit 748ab7d into main Nov 5, 2024
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant