Ich habe ein Projekt, wo ich Arithmetik standardmäßig überprüft haben möchte, mit Ausnahme einer leistungsempfindlichen Stelle. Leider hat VB.Net keinen "ungeprüften" Block.Schnellste Möglichkeit, eine ungeprüfte ganzzahlige Addition in VB.Net zu machen?
Idealerweise hätte das Framework eine Art Integer-Typ mit explizit ungeprüfter Arithmetik, aber ich habe nichts dergleichen gefunden. Ich habe festgestellt, dass Ausdrucksbäume binäre Ausdrücke für ungeprüfte Operationen haben, aber der Delegat-Overhead hebt den unkontrollierten Vorteil (und dann einige) auf.
Momentan konvertiere ich die Eingaben in UInt64/Int64, bevor ich die Arithmetik ausführe, und dann zurück umwandelt (mit einem bitweisen And, um innerhalb des Bereichs zu gewährleisten). Es ist etwa 50% langsamer als ungeprüfte Arithmetik (gemäß Profiling).
Das Verschieben des arithmetisch-sensitiven Teils in ein Projekt mit ungeprüfter Arithmetik könnte funktionieren, aber es scheint übertrieben zu sein, eine Assembly ganz für sich selbst zu erstellen.
Eine zusätzliche C# -Assembly ist möglicherweise übertrieben, aber Sie können auch ein Modul aus der C# -Datei (einige Befehlszeilenparameter für den Compiler) erstellen und dann ILmerge verwenden, um es mit Ihrer VB.NET-Assembly zu verbinden. – OregonGhost