I just saw this bizarre statement on reddit
in theory, JIT will probably have better steady state performance for long running processes, because of things like dynamic profile guided optimization - the JIT compiler can optimize/change the native code (even multiple times) at runtime according to the actual execution pattern of your code
Really? Where can I find details from Microsoft to support this and also learn if there is a way to exploit it for my apps code?
EDIT: after @Hans Passant comments I am now concerned with this:
https://github.com/dotnet/runtime/blob/main/docs/design/features/tiered-compilation.md
At runtime the JIT is able to observe the exact dependencies that are loaded as well as CPU instruction support which allows it to generate superior code.
obviously there are performance costs of "observing" which is not something one wants to have in latency sensitive apps.
New question - can you disable this behaviour? In run-time or in deployment or in project settings? Can you disable this for certain projects but not another? What API exists that the end-users (devs) can manage this "feature"?