Einzelnen Beitrag anzeigen

Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#39

Re: Schnellster Stringmatching-Algorithmus in ASM übersetzen

  Alt 8. Dez 2007, 09:17
Keine Ahnung, wo du deine Zahlen hernimmst:
Code:
10 Mio Zeichen (zufällige Klein-, Großbuchstaben und Ziffern); 100 Durchläufe

SubStr-Position            Ums.    Ticks  "Takte"

nicht enthalten:           Sirius  1641    5904826
nicht enthalten:           Alzaim  1672    5983740
nicht enthalten:           AmProf  1578    5624764

am Ende:                   Sirius  1516    5419565
am Ende:                   Alzaim  1531    5478115
am Ende:                   AmProf  1531    5523135

04 Zeichen kurz vorm Ende: Sirius  2000    7174492
04 Zeichen kurz vorm Ende: Alzaim  2063    7363324
04 Zeichen kurz vorm Ende: AmProf  1907    6784691

10 Zeichen kurz vorm Ende: Sirius  1656    5965412
10 Zeichen kurz vorm Ende: Alzaim  1703    6070397
10 Zeichen kurz vorm Ende: AmProf  1594    5729845

30 Zeichen kurz vorm Ende: Sirius  1500    5365152
30 Zeichen kurz vorm Ende: Alzaim  1547    5497721
30 Zeichen kurz vorm Ende: AmProf  1469    5270731

(Bei "nicht enthalten" und "am Ende" ist das Erste Zeichen des subst. nicht im eigentlichen SuchText enthalten)
Hier ist dein Algorithmus auch kaum bei kurzen Suchstrings besser. Aber wie gesagt, es ging ja nicht um kurze SuchStrings und auch nicht darum, alle Algortihmen in einer Assemblerroutine unterzubringen. Das du jetzt vielleicht noch 1% herausgeholt hast, mag ja sein. Wobei das 1% bezogen ist auf meinen bzw. Alzis Umsetzung. Beziehe die Differenz mal auf das ursprüngliche Delphi-Pos!
In meinem Beitrag #32 beziehe ich mich eben darauf, dass bis auf wenige Takte (was ich nicht explizit schrieb), aus diesem Algorithmus nichts mehr rauszuholen ist. Außer dass man ein paar Sprünge entfernt und dies und das (ich war auch noch nicht vollständig am Ende), wobei ich die Suche dann abgebrochen habe...(meine Pausen sind ja auch nicht ewig lang) denn eine Verbesserung um den Faktor 2 bis Inf (was meiner Meinung nach alzis Erwartungen entsprach) war nicht mehr möglich zu erreichen, nicht mal annähernd.

Aber du kannst ja gerne deine Routine weiter verfeinern und hier zur Verfügung stellen
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat