3 ms·
It's surprisingly straightforward. If you run your application with `DOTNET_JitDisasm='methodName'` you will get exact code that gets executed for a given metho
by neonsunset 2y ago
It's surprisingly straightforward. If you run your application with `DOTNET_JitDisasm='methodName'` you will get exact code that gets executed for a given method. It's pretty well-annotated and readable. You can also control JIT behavior with e.g. AggressiveOptimization flag (which can ironically make performance worse) which bypasses tiered compilation and pgo-optimization, always producing the same output.
But other than that yes, with techniques like load value prediction and memory-data dependent prefetching there is little you can do at the codegen level.
- lovich 2y agoIt’s as easily readable to me as well formed, college level French. I can recognize some shared concepts and a general vibe maybe but I am materially incapable of reading it without hundreds of hours of study
- neonsunset 2y agoIf you post a small snippet I can give a quick breakdown of what's going on. Assembly in its core is very simple - it's primarily just register moves, loads/stores, arithmetic operations, bitwise manipulation, calls and returns. As soon as you get familiar with syntax, even without in-depth knowledge, you can get a general idea of what's going on when comparing to the original code side-by-side (obviously it's not going to work with async or methods with yield returns but you get the idea).
- lovich 2y agoI appreciate the offer and agree with you that it could be learned, much in the same way I could sit down and learn French. What I’m pointing out though is that I don’t actively know it currently and am still able to produce software and earn a significant income despite that. I don’t know that everyone not understanding how AI works or even how the software it produces is supposed to work, adds a new type of risk to society