Wechsel von der Debug- zur Release-Konfiguration ohne Auswirkung auf die Performance?

8

Ich habe ein paar Benchmarking-Snippets auf Delphi getestet:

%Vor%

Es spielt keine Rolle, ob ich unter debug oder release configuration laufe / kompiliere, das Ergebnis ist ungefähr 900. Wenn ich in Visual Studio von debug auf release umschalte (für c ++ und c #), werden meine Programme MAGICALLY schneller. Ich benutze Delphi 2010 und aktiviere Release-Konfiguration vom Projektmanager sowie Projekt - & gt; Konfigurationsmanager und sogar Projekt - & gt; Optionen - & gt; Delphi-Compiler aber ohne Wirkung warum?

Wenn es darauf ankommt: Ich benutze Windows XP, ich habe 1 GB RAM und eine Intel Core2 CPU.

    
Omair Iqbal 02.07.2010, 05:24
quelle

4 Antworten

16
  1. Haben Sie überprüft, wie sich die Konfigurationen unterscheiden? Selbst wenn sie Namen wie RELEASE oder DEBUG haben, sind sie vollständig konfigurierbar. Sie können sie sogar anders herum konfigurieren.

  2. Der Code, den Sie zeitlich bestimmen, ist meistens I / O-bezogen. Stellen Sie daher sicher, dass die IO-Prüfungen in der RELEASE-Konfiguration deaktiviert sind.

  3. Delphi erstellt immer noch schnellen Code, auch wenn er debuggt;)

Uwe Raabe 02.07.2010, 06:23
quelle
10

Zusätzlich zu dem, was Uwe gesagt hat, stellen Sie sicher, dass Sie nach dem Umschalten der Konfiguration ein "Build" ausführen. Bei einem einfachen Kompilieren oder Ausführen der App werden nicht alle Einheiten mit den neuen Einstellungen neu kompiliert.

Wie die anderen Kommentatoren würde ich auch keinen allzu großen Unterschied zwischen den beiden Konfigurationen angesichts des verwendeten Benchmarks erwarten. Der eigentliche Engpass ist die E / A, und das wird wahrscheinlich Leistungsunterschiede zwischen DEBUG und RELEASE ausgleichen.

Schließlich ist das Debuggen in Delphi nicht viel langsamer als das Erstellen von Releases. Heck, ich führe manchmal Outlook im Debugger fast den ganzen Tag (ich entwickle Outlook Addins), ohne wahrnehmbare Leistungsdifferenz zu bemerken.

    
Oliver Giesen 02.07.2010 08:15
quelle
5

Das ist ein schlechter Testfall, denke ich. Alles, was Sie tun, ist in eine Datei zu schreiben, was bedeutet, dass die meiste Zeit in Windows-Code verbracht wird, nicht in Ihrem Delphi-Code, und daher beeinflussen die Compiler-Einstellungen die Gesamtausführungszeit nicht wesentlich

    
Giel 02.07.2010 10:28
quelle
3

Es gibt nichts in Ihrem Hauptcode-Hauptteil:

%Vor%

das erfordert anstrengende Kontrollen. Ihre Auswahlmöglichkeiten sind:

  • Bereichsüberprüfung
  • Überlaufprüfung
  • I / O-Prüfung

Von diesen drei wird nur die E / A-Überprüfung angewendet. Dies entspricht wahrscheinlich dem Hinzufügen von:

%Vor%

Und a die CMP und JNE CPU Befehle sind nicht sehr kompliziert. Sie werden in den Schatten gestellt , indem sie auf die Festplatte schreiben.

Es läuft genauso schnell, weil es schnell ist.

    
Ian Boyd 02.07.2010 13:29
quelle

Tags und Links