Live data from Hacker News

Testing FFI Hot Loop Overhead – Java, C#, PHP, and Go

vancan1ty.com

1–2 of 2 posts

Re: Testing FFI Hot Loop Overhead – Java, C#, PHP, and Go

#2
If 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).