Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: Warum delphi lahmer als c++?

  Alt 15. Dez 2006, 08:11
Wie schon oft wiederholt, zählt in erster Linie das Verfahren, also der Algorithmus.

Ich beschäftige mich gerade mit String-Matching-Algorithmen, und hier scheint es hingegen so zu sein, das C(++) die generischen Schleifen und Vergleiche vielleicht doch besser in Maschinencode abbilden kann.

Es ist nämlich so, das sich die offensichtlich besten Algorithmen nicht als Ebensolche in Delphi umsetzen lassen.

Hier hat bisher (bei meinen Ansätzen), ein sehr kompakter Algorithmus (QS) die Nase bei weitem vorn. Vermutlich vor Allem deshalb, weil die zentrale Funktion (vergleich von zwei Teilstrings) als 'CompareMem' abgebildet ist.

Bei dem Algorithmus, der derzeit die Nase vorn hat (FJS), wird der Vergleich über eine generische C-Schleife abgebildet. Wenn ich diesen FJS in Delphi übersetze, ist er um ein vielfaches langsamer als der QS-Algorithmus. Und ich glaube, es liegt an der Verwendung des CompareMem im QS-Algorithmus. Von der Komplexität ('Big Oh') ist der FJS einfach besser. Nebenbei: Auch Boyer-Moore, Horspool etc. können dem QS (QuickSearch von Daniel Sunday) unter Delphi nicht das Wasser reichen.

Ich meine, bei diesen generischen Schleifen und Vergleichen dürften die hier beschriebenen CPU-abhängigen Optimierungsmöglichkeiten in den C-Kompilern greifen.

Auf Applikationsebene entscheidet jedoch fast ausschließlich das verwendete Verfahren.

Nach meiner Einschätzung ist C für die Implementierung generischer Algorithmen (String-Matching, Hash, Listen, etc.) besser geeignet.

Auf OOP-Ebene sollte man imho auf C++ verzichten.
Zitat von Mein Bauch:
Mir sind Sprachen suspekt, deren Sprachkonstrukte aus Sonderzeichen bestehen
Abschließend sei noch eins erwähnt: Schnelle Programme schreibt man auch in VB, PHP oder JavaScript, solange das gewählte Verfahren optimal ist.
Zitat von Bernhard Geyer:
Für Delphi gibt es auch noch das FastCode-Project. Also falls man hier auch noch ein paar Prozent Geschwindigkeit benötigt und ein paar ruhige Stunden zu integration zur verfügung hat ....
Findest du Steigerungen um den Faktor 3 'ein paar Prozent'?
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat