Announcement

Collapse
No announcement yet.

Performance Delphi 8 <-> Delphi 7

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Performance Delphi 8 <-> Delphi 7

    Hallo,

    ich habe eine Frage zur Ausführungsgeschwindigkeit rechenintensiver Programme. Simulationssoftware hier, die ein oder mehrere Tage an einem Problem rechnet und dabei 1 GB Speicher verwendet.
    Mit Delphi 7 kann ich den erzeugten Code zwar etwas optimieren (lassen), aber nicht für Athlon XP oder P4. Dies scheint bei .Net besser möglich zu sein.

    Meine Frage ist nun, ob die Summe aus Numerik und Speichernutzung auf neuen Rechnern unter Delphi 8 (und WinXP) signifikant schneller (sagen wir 10% schneller?) ist als auf dem gleichen Rechner unter Delphi 7?

    MfG Jan Bärtle

  • #2
    Hallo,

    diese Frage wird sich nur im konkreten Testfall beantworten lassen. Dem generellen Vorteil des JIT-Compilers (wobei dieser erst dann zur Höchstform aufläuft, wenn mehr als eine CPU im Rechner steckt) stehen andere "Bremsfaktoren" entgegen (permanente Zugriffs- und Bereichsprüfungen).

    Je nach dem Gebrauch von Optionen (Bsp: <i>unchecked</i> in C#; Undokumentierte Compilerschalter <i>{$FINITEFLOAT OFF}</i> und <i>{$AUTOBOX OFF}</i> bei Delphi 8) wird man andere Zahlen erhalten

    Comment


    • #3
      Hallo Jan,

      hast Du eigentlich schon mal dein Programm mit einem Profiler wie <a href="http://www.automatedqa.com/products/aqtime.asp">AQTime</a> analysiert. Ich hatte schon Fälle in denen ich bis zu 95% Zeitersparnis erreicht hatte. Und sei es nur das bei einer Funktion vergessen wurde eine größere Struktur per const zu übergeben..

      Comment


      • #4
        Hallo

        und danke für die Antworten. Bei 1 Mrd. Speicherzugriffen (pro Rechnung) klingen Andreas Andeutungen (permanente Zugriffs- und Bereichsprüfungen) nach "Show-Stopper".

        @Bernhard: Ja, ich habe mal mit ProDelphi "rumgespielt". Glücklicherweise sind meine Algorithmen recht trivial, der zeitaufwändige Teil läuft in einer einzelnen Schleife und so war dann auch das Profiler-Ergebnis.

        Ich werde also (sobald mein Rechner wieder Zeit für mich hat) versuchen, den Code zu portieren und zu vergleichen.

        MfG Jan Bärtle

        Comment


        • #5
          Hallo,

          &gt;..nach "Show-Stopper"...

          das muss nicht zwangsläufig so sein. Wenn der JIT-Compiler die Aufrufe über das so genannte <i>Inlining</i> ausführen kann, müssen die Prüfungen nicht bei jedem Schleifendurchlauf stattfinden. Außerdem kann man in C# die Bereichsprüfungen über das Schlüsselwort <b>unchecked</b> (nicht zu verwechseln mit unsafe) gezielt abschalten

          Comment

          Working...
          X