Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

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

FastPosEx - Eine 3-10x schnellere PosEx-Implementierung,

  Alt 24. Dez 2007, 13:40
Hallo Leute,

Mit Hilfe von Daniel Sunday, Timo Raita, John O'Hara, AmateurProfi, Sirus und Dax habe ich eine Version der PosEx-Funktion geschrieben, die 3-4x schneller ist, als die von der Delphi-RTL bereitgestellte Variante.

Sie kombiniert eine optimierte Suche nach einem Byte, eine sehr schnelle PosEx-Optimierung sowie den QuickSearch-Algorithmus von Daniel Sunday, der erst bei langen Strings seine Stärken ausspielt.

Die CharPos und PosEx-Versionen sind von John O'Hara, die er im FastCode-Projekt eingereicht und damit auch gewonnen hat. Sie verwenden SSE und MMX Befehle, sodaß der Code auf älteren CPU nicht lauffähig sein dürfte.

Der Code ist zwischen 3 und 10 mal schneller als die PosEx-Implementierung in der Delphi-RTL.
Angehängte Dateien
Dateityp: pas fastposunit_422.pas (16,8 KB, 102x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat