![]() |
Re: StringReplace und doppelte Leerzeichen
Ey... Leute....
Seid Ihr verrückt ;) (ich meine das absolut nett) :angel: Es ist ja jetzt fast ein Wettstreit um die schnellste Funktion entstanden. Nein nicht nur fast, es ist. Warum macht man daraus nicht gleich einen kompletten StringReplace Ersatz, denn das einzige was man zu StringReplace in den Foren findet ist, daß es "*rschlahm" ist :wink: Ich würde mich gerne auch noch weiter produktiv an diesem Thema beteiligen, aber hier seid Ihr bereits so weit das ich da besser nur noch interessiert lese und lerne. |
Re: StringReplace und doppelte Leerzeichen
Code:
Ich habs mit der Testsuite von sakure aus einem der 1. Beiträge getestet (#7)
Zeit1( 36,34 ms)/Zeit2 81,83% = -18,17% (SirThornberry)
Zeit2( 44,41 ms)/Zeit2 100,00% (sakura) Zeit3( 34,89 ms)/Zeit2 78,57% = -21,43% (jbg) Zeit4( 29,93 ms)/Zeit2 67,41% = -32,59% (DerDan) Zeit5( 34,20 ms)/Zeit2 77,01% = -22,99% (Elvis) Tatsächlich sollte man mal richtige Testdaten Haben ... mfg DerDan |
Re: StringReplace und doppelte Leerzeichen
Zitat:
![]() ![]() |
Re: StringReplace und doppelte Leerzeichen
Code:
Zeit1( 96,32 ms)/Zeit2 94,11% = -5,89% (SirThornberry)
Zeit2( 102,35 ms)/Zeit2 100,00% (sakura) Zeit3( 90,74 ms)/Zeit2 88,66% = -11,34% (jbg) Zeit4( 72,29 ms)/Zeit2 70,64% = -29,36% (DerDan) Zeit5( 78,48 ms)/Zeit2 76,68% = -23,32% (Elvis) Testergebins mit einem Pascal Quelltext, wie man sieht alles stark von den Eingangsdaten abhängig mfg derDan Wer misst misst mist: ich habe meinen Quelltext nochmals überprüft und festgestellt, dass ich Zeit3 und Zeit 4 vertauscht habe: korrekt ist das:
Code:
Zeit1( 378,25 ms)/Zeit2 88,62% = -11,38% (SirThornberry)
Zeit2( 426,82 ms)/Zeit2 100,00% (sakura) Zeit3( 371,47 ms)/Zeit2 87,03% = -12,97% (DerDan) Zeit4( 317,78 ms)/Zeit2 74,45% = -25,55% (jbg) Zeit5( 345,66 ms)/Zeit2 80,98% = -19,02% (Elvis) Sorry vielmals und Danke an Elvis der mir eine PN geschickt hat und ich daraufhin nochmals getestet habe und meinen Fehler gefunden habe. DerDan |
Re: StringReplace und doppelte Leerzeichen
Liste der Anhänge anzeigen (Anzahl: 1)
Etwas verspätet, aber hier eine kleine Vergleichsgrafik. Erstellt wurden 5 Randomstrings (10 Mio Zeichen) mit mehr oder weniger häufigen doppelten Leerzeichen. Das Laufzeitverhalten ist stark Abhängig von der Häufigkeit. Lustigerweise kommt man dann zu anderen Ergebnissen, zumindest auf einem AMD.
![]() |
Re: StringReplace und doppelte Leerzeichen
Hallo alzamir,
ist ganz hübsch, erinnert mich irgendwie an eine Gaussche Normalverteilung (mit 0 Punkt bei 50%). Wenn Du jetzt noch die einzelnen Algorithmen der RemoveDblSpaces Functionen zum rauskopieren mit einbauen wuerdest, dann könnte jeder nach seiner CPU und abgeschätzten Prozentanteil, die passende Function gleich übernehmen. Oder veröffentliche doch gleich den Quelltext. Gruß Fuchtel |
Re: StringReplace und doppelte Leerzeichen
Wieviel schulde ich dir für die Statistik? :mrgreen:
btw: Wie ich bereits angedeutet habe, packt mal irgendwo ein #0 in den String und probiert es noch mal. :twisted: Meins ist zwar eigentlich eine Kopie von alzaimars Code, bei mir muss aber ein Integer anstatt einem Byte verglichen werden[1], dafür stopt die Funktion nicht beim ersten #0. Es ist aber möglich, dass meine mit weniger Operationen auskommt wenn die Anzahl der aufeinander folgenden Doubletten steigt[2]. Fazit: Mal wieder eine nette Exkursion zurück in unmanaged, pointerverseuchte Gefilde. :stupid: [1] Adresse hinter dem letzten Zeichen vs #0 [2] Solange muss sie ja nicht gegen die aktuelle Position prüfen. |
Re: StringReplace und doppelte Leerzeichen
Zitat:
@Elvis: Schulden werden per :cheers: beglichen. :mrgreen: |
Re: StringReplace und doppelte Leerzeichen
Hallo alzaimar,
nein, ich meinte, um die Option in dein Vergleichschart einzubauen, anhand des Ergebnisses die passende Funktion von dort gleich in die Zwischenablage zu Übernehmen. Gruß Fuchtel |
Re: StringReplace und doppelte Leerzeichen
Zitat:
Du würdest eigentlich nur 2 Funktionen brauchen. Eine, die besser mit Mini-Strings umgehen kann und eine für den Rest. Die für den Rest wird wohl immer noch schnell genug für die meisten Anwendungen von Mini-Strings sein. ;) Ich denke nicht, dass alzaimar so offensichtlich Copy&Waste-"Programmierer" unterstützen würde. ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz