Pracht und Armut der PLO - Seite 3

 
Integer:

Eigentlich war es nicht der Compiler, der getestet wurde, sondern zwei Methoden zur Lösung desselben Problems. Es kommt nicht darauf an, wie der Kühlschrank brummt, sondern wie er gefriert.

Es ist ein weggeworfenes Problem und es ist laut...

Virtuelle Funktionen sind niemals inline, so dass es bei aktivierter Optimierung keinen Sinn macht, mit einfachen Beispielen zu vergleichen, wenn die Umstellung gut gemacht ist. Das ist die eine.

Wer sagt, dass OOP schneller ist? Einfacher, logischer, aber kaum schneller. Das sind zwei.

Wenn es Ihnen nicht gefällt, verwenden Sie es nicht.

 
Integer:
Danach gab es zwei weitere Testvarianten, 2 - mit nicht leeren Funktionen, 3 - mit eindeutigen Funktionen, die Ergebnisse waren ähnlich. Variante 1 wurde immer noch in C# durchgeführt, aber das Ergebnis war das Gegenteil.

Ich habe diese Optionen gesehen. Und auch sie fügen sich in das Inline-Schema ein und sind gut optimiert.

Die Variante mit C# zeigt einen weiteren irreführenden Fehler aufgrund eines Missverständnisses der Arbeit des Code-Optimierers. Der Code wurde nicht gezeigt und der Dotnet-Compiler hat auch ein Vielfaches an Optimierungsmethoden, die die entarteten Fälle der Testbeispiele wie Nüsse knacken. Ich habe gerade ein Beispiel für einen einfachen Fall der Umwandlung einer virtuellen Funktion in eine reguläre Funktion in einfachen Fällen gegeben. Wir werden diese Optimierung (in einfachen Fällen wie diesem Test) ebenfalls aktivieren, und auch Sie werden sehen, wie eine "virtuelle" Methode plötzlich eine gerade Methode überholt.

 
TheXpert:

Ein aus dem Ruder gelaufenes Problem und Lärm...

Virtuelle Funktionen sind niemals inline, so dass es bei aktivierter Optimierung keinen Sinn macht, mit einfachen Beispielen zu vergleichen, wenn die Umstellung gut gemacht ist. Das ist die eine.

Wer sagt, dass OOP schneller ist? Einfacher, logischer, aber kaum schneller. Das sind zwei.

Wenn es Ihnen nicht gefällt, verwenden Sie es nicht.

Nun, das ist überhaupt kein Problem. Es handelt sich lediglich um ein Experiment mit den Ergebnissen und einer Schlussfolgerung.

Ich mag es, ich mag es nicht. Die Verwendung von "langsam" anstelle von "schnell" ist nicht logisch.

 
Renat:

Ich habe diese Optionen gesehen. Und auch sie fügen sich in das Inlining-Schema ein und sind gut optimiert.

Die Variante mit C# zeigt einen weiteren irreführenden Fehler, der durch ein falsches Verständnis der Arbeit des Code-Optimierers verursacht wird. Der Code wurde nicht gezeigt und der Dotnet-Compiler verfügt über ein Vielfaches an Optimierungsmethoden, die entartete Fälle von Testbeispielen wie Nüsse knacken können. Ich habe Ihnen gerade ein Beispiel für einen einfachen Fall der Umwandlung einer virtuellen Funktion in eine reguläre Funktion in einfachen Fällen gegeben. Wir werden diese Optimierung (in einfachen Fällen wie diesem Test) ebenfalls aktivieren, und auch Sie werden sehen, wie eine "virtuelle" Methode plötzlich eine gerade Methode überholt.

Es scheint, dass jedes Ergebnis, das ich erhalte, falsch und irreführend sein wird.

- Wofür?

- Inder, Sir.

(xf Lone Ranger)

So sehr ich es auch versucht habe, es gibt keine Möglichkeit, es langsamer zu machen als die virtuelle Methode über den Schalter. Ich habe es versucht, aber leider hat es nicht funktioniert.

 

Hier im Anhang finden Sie den ersten C#-Test. Hier sind die Ergebnisse

Dateien:
test.zip  66 kb
 

Der Beweis wird von der anderen Seite kommen. Oder wieder nur Worte.

Im Großen und Ganzen bin ich nur an Fakten interessiert.

Ich weiß zwar schon, dass OOP langsamer ist, aber es bietet ganz konkrete Annehmlichkeiten

 
Vinin:

Der Beweis wird von der anderen Seite kommen.

Beweise für was?
 
TheXpert:
Beweise für was?
Andrej, du hast den Wunsch, Dima das Gegenteil zu beweisen. Dann geben Sie sie mir.
 

Warum braucht man OOP, um Spielzeug zu schreiben? )

 

In jedem Fall ist es gut, dass das Thema angesprochen wurde.

Wir arbeiten ständig an der Verbesserung des Compilers und seines Optimierers. Wir werden uns nun auf die Optimierung von Aufrufen virtueller Methoden konzentrieren (viele virtuelle Methoden können in direkte Methoden umgewandelt werden).

Grund der Beschwerde: