Viewing profile — andyayers
andyayers
HN member- Joined
- Wed, Jan 16, 2019, 8:49 AM UTC
- HN karma
- 41
- Public activity
- 20 items
- HN profile
- View on Hacker News ↗
About andyayers
Before that I worked on the Phoenix Compiler Framework at Microsoft and the High Level Optimizer at HP.
Recent public activity
-
comment
Comment #45522692
Microsoft | Compiler Engineer, .NET JIT | C++, C# | Redmond WA / Other locations possible We are a small tight-knit team, happy to both teach and learn new ways of making code run …
-
comment
Comment #45498390
.NET JIT developer here. What else would we call it? It is what it is. I believe there are some differences between what .NET does and what mainstream Java does. For instance, obje…
-
comment
Comment #45498282
Sometimes, yes. Linq contains a goodly number of hand-crafted special-case enumerators for common collections, or collections with certain interfaces, or span projections that are …
-
comment
Comment #45200289
Here is one that has some historical comparison, though it does not show perf on Framework, and no .NET 10 yet. https://endjin.com/blog/2024/11/how-dotnet-9-boosted-ais-dot...
-
comment
Comment #44053646
HPUX compilers were doing this back in 1993.
-
comment
Comment #44047460
Unfortunately, those improvements don't work for Linq. Some notes on why this is so here: https://github.com/dotnet/runtime/blob/main/docs/design/core...
-
comment
Comment #43538296
There indeed is a regression if the method is only called a few times. But not if it is called frequently. With BenchmarkDotNet it may not be obvious which scenario you intend to m…
-
comment
Comment #43536917
Long-running methods (like the one here) transition mid-execution to more optimized versions, via on-stack replacement (OSR), after roughly 50K iterations. So you end up running op…
-
comment
Comment #43245717
For the .NET JIT, at least, speculation on types seems beneficial even if we're only right maybe 30% of the time. See eg https://github.com/dotnet/runtime/blob/main/docs/design/cor…
-
comment
Comment #41771691
Or https://learn.microsoft.com/en-us/defender-endpoint/microsof... (DevDrive + Defender's "performance mode")
-
comment
Comment #41474981
In .NET, even in optimized methods, there can be "untracked" lifetimes where a stack slot is reported live to GC throughout the extent of a method, so presumably these can lead to …
-
comment
Comment #41262528
Not these days, but yes, years ago.
-
comment
Comment #41262203
There are a few interesting places where Galois Theory touches on compilation/programming. Abstract interpretation models a potentially infinite set of program behaviors onto a sim…
-
comment
Comment #40133671
Something closer to a "pure codegen/runtime" example perhaps: I have data showing Roslyn (the C# compiler, itself written in C#) speeds up between ~2x and ~3x running on .NET 8 vs …
-
comment
Comment #33536557
Feel free to open an issue for this over at github.com/dotnet/runtime, if you have code you can share.
-
comment
Comment #33227548
IIRC with .NET 7 we will be able to improve this as we can now dump the jit-generated assembly from official builds. .NET 7 will be officially released in a month or so. Currently …
-
comment
Comment #28215048
Yes, we need to provide more guidance. For now, you might find more info by searching for COMPlus_TieredPGO. The DOTNET_ prefix is a recent addition.
-
comment
Comment #28214088
Please let us know how well (or poorly) it works for you.
-
comment
Comment #24591563
FWIW [peachpie]( https://www.peachpie.io/2020/09/peachpie-1-0-preview1.html ) is a fairly complete PHP stack running on top of .NET core, leveraging the .NET runtime and jit. It ca…
-
comment
Comment #20974222
FWIW, MSVC has had this ability for a few years now. It helps with both normal compilation unit compiles and with link-time code generation. See for instance Bruce Dawson's notes: …