3 ms·
Is there an equivalent to Java Grinder for C#?
by Decabytes 4y ago
Is there an equivalent to Java Grinder for C#?
- jayd16 4y agoThe latest version of .NET has official AOT support. https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/ https://learn.microsoft.com/en-us/dotnet/core/deploying/nati...
- pjmlp 4y agoPlenty of .NET versions have AOT support in different flavours, - NGEN (part of .NET since day 1) - MDIL (Windows 8 and 8.1 store apps, partially based on Sigularity) - .NET Native (UWP, partially taken from Midori/Project N) - Mono AOT (Xamarin and Blazor) - IL2CPP / Burst (Unity) - CosmOS And now NativeAOT, which currently only supports CLI and libraries workloads.
- grishka 4y agoNow I wonder if there are any AOT compilers for Java besides OP's (though it's of limited utility as it doesn't implement garbage collection) and GraalVM.
- pjmlp 4y agoYes since around 2000, mostly suffered from being commercial offerings, thus only available in enterprise shops. - Excelsior JET (one of the most known ones, nowadays out of business) - Aonix (now gone, acquired by PTC) - PTC (https://www.ptc.com/en/products/developer-tools/perc https://www.ptc.com/en/products/developer-tools/perc) - JamaicaVM (https://www.aicas.com/wp/products-services/jamaicavm https://www.aicas.com/wp/products-services/jamaicavm) - Android since version 5 (https://source.android.com/docs/core/runtime/jit-compiler https://source.android.com/docs/core/runtime/jit-compiler). With version 7 it became JIT/AOT as mechanism to reduce compile times. - J/Rockit had JIT caches (nowadays merged into OpenJDK) - WebSphere Real Time and AS/400 JVM, nowadays lives on as OpenJ9 AOT (https://www.eclipse.org/openj9/docs/aot https://www.eclipse.org/openj9/docs/aot) - Jikes RVM (https://www.jikesrvm.org/Resources/Presentations/ https://www.jikesrvm.org/Resources/Presentations/) - JX research OS (https://en.wikipedia.org/wiki/JX_(operating_system) https://en.wikipedia.org/wiki/JX_(operating_system)), not really AOT, but everything gets compiled to native code when loaded, before use There were also some hardware implementations using the JVM bytecode as Assembly, - JOP (https://www.jopdesign.com https://www.jopdesign.com) - picoJava (https://en.wikipedia.org/wiki/PicoJava https://en.wikipedia.org/wiki/PicoJava) - ARM's Jazelle (https://en.wikipedia.org/wiki/Jazelle https://en.wikipedia.org/wiki/Jazelle)
- whizzter 4y agoThere's been plenty but they've fallen aside for various reasons. - GCJ (iirc only pre 1.5-1.6 java support so never with generic versions, not sure if they ever implented JNI but relied on their own so libraries with native bindings had to be manually ported iirc) - Excelsior JET was a strong option for a long time on desktops up until 2018, main selling point was resistance to decompilation but not sure if they ran afoul of Oracle licensing or couldn't keep up with the accelerated pace of JDK releases in later years. (The below were options to various degrees for iOS developers) - Avian VM ( https://readytalk.github.io/avian/ https://readytalk.github.io/avian/ ), opensource and seems to be up but never really saw an uptake or proper debug tooling iirc, seems inactive by now. - Robo VM was another strong option with strong support for IDE debuggers,etc since it was used by gamedevs and the initial libgdx author was involved in it. Sadly they were sold out to Xamarin shortly before MS bought out Xamarin and then promptly shut down since MS only had interest in Xamarin for their C# iOS/Android toolkits. - RoboVM forks, luckily RoboVM core was liberally licensed so forks were possible for those working on mobile games with iOS ports even if the tooling wasn't as slick as the official RoboVM project (No idea if any of the open source variants have caught up, it was a bit chaotic initially with many forks). - Intel had(have?) some AOT compiler for Java that was an option for libgdx developers for a while but RoboVM being more "native" had more eyes and no idea if Intel really had a business case for it's Java things ? ( (Funnily enough, I was actually doing an AOT one during late uni times to write a thesis on game GC's (and hoping to maybe commercialize), then Oracle bought out Sun and I wrote a JS AOT prototype instead. Hearing of Oracle vs Goog it felt sane but Oracle did showcase RoboVM later on so maybe it was silly)
- loeg 4y agoI also wonder how Java Grinder compares with GCJ. Looks like it targets a lot of 8-bit micros, whereas GCJ is mostly targeting 32-bit+ C machines (via GCC backends)? (To oversimplify a lot.)