![]() |
AW: Schnellstes Entfernen von Chars aus einem String?
Hat denn auch mal jemand getestet, wie lange die erste Schleife braucht, wenn Chars sehr groß ist (1 GB oder mehr)?
|
AW: Schnellstes Entfernen von Chars aus einem String?
Ich hab alle Tests mit einer knapp 1 GB großen Textdatei gemacht. 3 Chars die ersetzt werden sollen, insgesamt 31805 Ersetzungen. Die Zeitunterschiede der letzten Versionen (einschließlich Zacherl + DeddyH's Versionen) sind marginal, d.h. Unterschiede sind zumindest unter Win8.1/64 nicht messbar. Die paar Ticks Differenz die ich noch messen kann, sind zudem mit normalen Messmethoden via TickCount nicht permanent nachvollziehbar (CPU-Cache usw.)
Ist also schon fast Geschmacksache, was man nimmt: Strings, PChars oder das Bool-Array. |
AW: Schnellstes Entfernen von Chars aus einem String?
Ich glaube, Du hast mich falsch verstanden. Ich meinte den String mit den Ersetzungen, also den 2.Parameter.
|
AW: Schnellstes Entfernen von Chars aus einem String?
Zitat:
definiert man dort die paar erlauben Zeichen. :zwinker: |
AW: Schnellstes Entfernen von Chars aus einem String?
"wenn Chars sehr groß ist (1 GB oder mehr)" macht hier nicht so viel Sinn, Chars i.d.R. <= 255 bzw. 65535 Zeichen.
|
AW: Schnellstes Entfernen von Chars aus einem String?
Wir haben doch auch nur max. 65535 Zeichen in Unicode, da wir doch die Chars einzeln betrachten, oder habe ich da was verpasst ?
Man sollte bei dem Algo wirklich beachten, ab wann (Anzahl der Chars) es sich wirklich noch "lohnt" zu Löschen. |
AW: Schnellstes Entfernen von Chars aus einem String?
Unicode (UTF-16) hat zwar 2 Byte pro "Char", aber es sind dennoch die Zeichen 0 bis $10FFFF (1114111+1-2*1024) definiert, aber keiner der Codes hier kommt mit den armen vernachlässigten Surrogates klar.
|
AW: Schnellstes Entfernen von Chars aus einem String?
Wie auch immer ... man sollte sich wirklich überlegen, dass man, wenn man einsprachige Texte als gegeben ansieht, die Such-Char-Anzahl nicht überdimensioniert. Damit kontakariert man ja die eigentliche Funktion.
|
AW: Schnellstes Entfernen von Chars aus einem String?
Zitat:
Das Array "Skip" als lokale Variable heißt 64Ki Bytes auf dem Stack. IdR sollte das unproblematisch sein, aber ich vermeide das gern. |
AW: Schnellstes Entfernen von Chars aus einem String?
Hier ging es ja um Geschwindigkeit und da ist Stack nunmal schneller.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:35 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