Live data from Hacker News

Performance Improvements in .NET Core

blogs.msdn.microsoft.com

81–90 of 94 posts

Re: Performance Improvements in .NET Core

#81
This is great and a very detailed report as well!

Although if I understood this correctly, these performance improvements will only take effect if you compile using .Net Core 2.0 and run using .Net Core 2.0 runtime? I did not realize .Net Core had diverged this much from .Net Framework.

Re: Performance Improvements in .NET Core

#82

What's up with the memory consumption of C# .Net Core? It looks like it has dethroned Java as the memory bloat champion. http://benchmarksgame.alioth.debian.org/u64q/csharp.html

I played around with the binary-tree code. It's definitely because of Task (disabling the >= 17 heuristic doubles the memory usage). This should come way down with .Net Core 2.0 and ValueTask.

Re: Performance Improvements in .NET Core

#83

Earlier quoted context omitted.

Actually the instructions for Debian are the best: download the tarball, adjust $PATH and go: https://www.microsoft.com/net/core#linuxdebian But I went "ubuntu" route and bailed, looking for a simple tarball.

Why is the Ubuntu route too difficult?

Because Microsoft provides a package repository for ubuntu. This means you will get automatic updates.

If you don't like it you can install the same debian tarball on ubuntu.

Re: Performance Improvements in .NET Core

#84
post #72
post #71

Is there something like Heroku but for dotnet core apps? I'd like to play a bit with it but it should be as easy as pushing to a repo to deploy and run.

Why do you need to push to a repo to deploy/run? If you want to play just create a project and run it locally.

I'd like to avoid any installation hassles.

What would be the easiest way to run on macOS?

Re: Performance Improvements in .NET Core

#85
post #81

This is great and a very detailed report as well! Although if I understood this correctly, these performance improvements will only take effect if you compile using .Net Core 2.0 and run using .Net Core 2.0 runtime? I did not realize .Net Core had diverged this much from .Net Framework.

> I did not realize .Net Core had diverged this much from .Net Framework.

Yeah me too.

On the flip side I consider it a healthy sign for the project as a whole and especially as an open-source undertaking.

Re: Performance Improvements in .NET Core

#86
post #82

What's up with the memory consumption of C# .Net Core? It looks like it has dethroned Java as the memory bloat champion. http://benchmarksgame.alioth.debian.org/u64q/csharp.html

I played around with the binary-tree code. It's definitely because of Task (disabling the >= 17 heuristic doubles the memory usage). This should come way down with .Net Core 2.0 and ValueTask.

Does it come way down with .NET Core 2.0 Preview 1 ?

Re: Performance Improvements in .NET Core

#87

Earlier quoted context omitted.

Are any of those discussions around better way to write the benchmarks public? From a very quick look, something like http://benchmarksgame.alioth.debian.org/u64q/program.php?tes... looks like a direct port from a C program, rather than idiomatic C#.

Some of them seem to have some rules [1] like: > Please don't implement your own custom "arena" or "memory pool" or "free list" - they will not be accepted. > ... > We ask that contributed programs not only give the correct result, but also use the same algorithm to calculate that result. So there might not be too much room to improve. There could be some room to improve for things like "custom ... memory pool" since…

>> "you can only allocate memory in the standard ways provided by the runtime." This.

Re: Performance Improvements in .NET Core

#88

Every time I try to get a quick feel of .NET on Linux, I allocate an hour to it and that hour is always spent wandering around various guides on microsoft.com and never getting anything done. There are terms like .NET Core, .NET Platform, .NET Framework, .NET SDK all mixed up on nearly every page, multiple versions of "Getting started" and "Quick start" guides, massive navigation menus and options on every page so yo…

100% hear you on this. I work at Microsoft and recently started looking at our Getting Started experience (initially focused on our websites). As @runfaster2000 already mentioned, we are working on some changes/redesign to address exactly what you talked about. I sent an email to the address in your profile to see if you want to chat more and see if some of our ideas would solve your frustrations.

Re: Performance Improvements in .NET Core

#89

Every time I try to get a quick feel of .NET on Linux, I allocate an hour to it and that hour is always spent wandering around various guides on microsoft.com and never getting anything done. There are terms like .NET Core, .NET Platform, .NET Framework, .NET SDK all mixed up on nearly every page, multiple versions of "Getting started" and "Quick start" guides, massive navigation menus and options on every page so yo…

Great points all, especially about the "simple downloadable .tar.gz." We will fix that. Until then, I wrote it up for you.

https://www.hanselman.com/blog/TryingNETCoreOnLinuxWithJustA...

Re: Performance Improvements in .NET Core

#90
post #10

Whenever I look at drastic improvements in performance, I remember that a while ago I managed to speed up a custom parser at work, by about 30x. When I emailed my colleagues, I just said "You may consider this to be work of a genius. Or you may think I was stupid when writing the original implementation. I'll let you pick the narrative that you fancy." Interpretations are fun when there's a baseline :-)

Reminds me of when I replaced a read-write lock around generating a new object instance with an atomic reference instead. I personally put that one into the latter of your two cases... But the performance improvement certainly looked heroic!
Post reply on HN