Menü
Avatar von MsGuru01
  • MsGuru01

165 Beiträge seit 16.09.2017

Re: Sind halt die üblichen Missverständnisse.

cdonat schrieb am 13.01.2020 16:29:

Ähm, naja, du tust wirklich Java und C++ in den gleichen Topf, wenn es um Performance geht? Java überflügeln die .Net Sprachen problemlos (https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharp.html), da stimme ich dir zu, aber C++ ist bei dem Thema schon noch ein ganz anderes Biest (https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/csharpcore-gpp.html) - zugegeben, ein nicht immer all zu leicht zu zähmendes, aber wenn du es unter Kontrolle bringst, kannst du damit fast allen anderen davonrennen.

In .NET Core werden immer mehr teile der Runtime von C/C++ in managed code portiert um die Performance zu verbessern. Dazu kommt, dass man auch unter .NET Core mit Pointern und unsafe code arbeiten kann für performance kritische Codepfade.

Und der neue .NET Core JIT hat auch die möglichkeit einer aggresiveren JITers, welche häufig verwendete Methoden aufrufe aggresiver optimiert und zur laufzeit ersetzt (hot-swap von code während der Laufzeit).

Das was .NET (und Java) generell langsam macht ist interop und garbage collection. Letztere lässt sich durch Buffer pools reduzieren, erstere durch mehr nativer implementationen. Die neue Version kriegt auch mehr unterstützung für hardware intrinsics und vektorisierung.

Bewerten
- +