top | item 37622939

(no title)

prakis | 2 years ago

I never used D-lang in any production application.

But for an IOT prototype where the executable size and performance were very important we benchmarked D also along with Go and C#.NET Core.

I made the same prototype in Go, C#, Java(GraalVM Native Compile) and D-lang. The results were surprisingly positive for D-lang.

Best Peformance -> D-lang, next Go and then Java(GraalVM), C#.NET Core.

Executable Size -> D-lang:500kb, Go: 2.5 MB, C# : 11MB, Java(GraalVM):8MB.

Our major concern with D-lang was lack of dependable(tested) standard libraries.

discuss

order

neonsunset|2 years ago

AOT size footprint of C# is now smaller than Go (as of .NET 8). Also performance is much better, just write code in a Rust-ish way (struct generics).

If each language is used correctly, Go should come last on the benchmarks.

schemescape|2 years ago

C# AOT is down to 1 - 2 MB? Are any tricks required? Is it compressed? Does it have runtime dependencies? How is start up time?

Last time I tried C# AOT (not sure what version, but it was in March of this year) I ended up with a 67 MB (static) executable.

Edit: the docs mention a web app at 8.5 MB (static) on Linux: https://learn.microsoft.com/en-us/aspnet/core/release-notes/...

chrismsimpson|2 years ago

Struct generic C# is where it’s at