Skip to content

perf: Establish BulkCopyAsync performance baseline - #2

Merged
sebastian-ederer merged 1 commit into
mainfrom
benchmarks/bulk-copy-comparison
Sep 4, 2025
Merged

perf: Establish BulkCopyAsync performance baseline#2
sebastian-ederer merged 1 commit into
mainfrom
benchmarks/bulk-copy-comparison

Conversation

@sebastian-ederer

Copy link
Copy Markdown
Member

The generic BulkCopyToAsync method, even with optimizations, showed significant overhead from its configuration and abstraction layers when compared to other high-performance EF Core extensions.

This commit establishes a "best-case scenario" baseline by:

  • Rewriting the primary benchmark to use a direct, hard-coded Npgsql binary copy, bypassing the generic helper method entirely.
  • Updating the benchmark project to use direct project references instead of NuGet packages, streamlining the development cycle.
  • Refining benchmark parameters for more accurate measurements.

This provides a clear target for future optimizations of the generic helper method.

The generic `BulkCopyToAsync` method, even with optimizations,
showed significant overhead from its configuration and abstraction
layers when compared to other high-performance EF Core extensions.

This commit establishes a "best-case scenario" baseline by:
- Rewriting the primary benchmark to use a direct, hard-coded Npgsql
  binary copy, bypassing the generic helper method entirely.
- Updating the benchmark project to use direct project references
  instead of NuGet packages, streamlining the development cycle.
- Refining benchmark parameters for more accurate measurements.

This provides a clear target for future optimizations of the generic
helper method.
@sebastian-ederer
sebastian-ederer merged commit 468c794 into main Sep 4, 2025
2 checks passed
@sebastian-ederer
sebastian-ederer deleted the benchmarks/bulk-copy-comparison branch September 4, 2025 16:15
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