Testing FFI Hot Loop Overhead – Java, C#, PHP, and Go
1–2 of 2 posts
Re: Testing FFI Hot Loop Overhead – Java, C#, PHP, and Go
#2If you want to use 'dotnet run' to quickly launch a C# program, you need to use '-c Release' when evaluating performance, otherwise it will target Debug. With that, you won't need true in .csrpoj and will get proper optimizations.
Additionally, you really want to use proper benchmarking frameworks for each respective language (BenchmarkDotNet for C#). Both JVM and .NET JIT will go through multiple optimization tiers, Tier 0 -> Tier 1 in case of .NET 7 and Tier 0 -> Tier 0/1 instrumented for collection of PGO data -> Tier 1 PGO optimized in case of .NET 8 (Dynamic PGO is opt-in in .NET 7 and opt-out in .NET 8).