-
Notifications
You must be signed in to change notification settings - Fork 173
feat(csharp/Benchmarks): Add .NET Framework 4.7.2 support with TLS co… #3682
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
feat(csharp/Benchmarks): Add .NET Framework 4.7.2 support with TLS co… #3682
Conversation
…nfiguration This commit enhances the CloudFetch benchmark suite to support testing on .NET Framework 4.7.2, which is the runtime used by Power BI. Changes: - Add net472 target framework to Benchmarks.csproj - Make Tests project reference conditional (net8.0 only, since Tests doesn't support net472) - Enable TLS 1.2/1.3 in CloudFetchBenchmarkRunner for .NET Framework - Enable TLS 1.2/1.3 in benchmark GlobalSetup for spawned processes These changes are necessary because .NET Framework 4.7.2 doesn't enable modern TLS protocols by default, which are required for Databricks HTTPS connections. This allows accurate performance testing on the Power BI runtime environment (net472 with DefaultArrayPool). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
CurtHagenlocher
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! Instead of conditionally compiling for .NET 8.0, can we change the target frameworks so they only target .NET 4.7.2 when built on Windows?
Address review feedback: Instead of conditionally including the Tests project reference based on TargetFramework, use the same pattern as the Tests project itself with conditional TargetFrameworks based on the IsWindows property. This ensures net472 is only targeted on Windows platforms where it's supported, making the Tests project reference always compatible. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
csharp/Benchmarks/Program.cs
Outdated
| * limitations under the License. | ||
| */ | ||
|
|
||
| #if NET8_0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we still need the #ifs in this file?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not needed
Address review feedback: Remove #if NET8_0 preprocessor directives since the Tests project is now available for both net8.0 and net472 on Windows due to the conditional TargetFrameworks approach. The Apache.Arrow.Adbc.Tests project reference is now always available for all target frameworks that the Benchmarks project builds for. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
This commit enhances the CloudFetch benchmark suite to support testing on .NET Framework 4.7.2, which is the runtime used by Power BI. There are some notable difference in .NET472 vs .NET8.0, one of them is /K4os.Compression.LZ4 use the DefaultArrayPool in .NET472 which has a 1 MB upper limit for array size, where .NET8.0 use the SharedArrayPool which almost have no size limit.
Changes:
These changes are necessary because .NET Framework 4.7.2 doesn't enable modern TLS protocols by default, which are required for Databricks HTTPS connections. This allows accurate performance testing on the Power BI runtime environment (net472 with DefaultArrayPool).
Command:
dotnet run -c Release --project Benchmarks/Benchmarks.csproj --framework net472 CloudFetchBenchmarkRunnerSample output:
🤖 Generated with Claude Code