Schneller als String.Replace ()

8

Gibt es eine andere Methode, die schneller ist als das?

%Vor%

- Bearbeitet (Erklärung hinzufügen) -
F1: Gibt es einen Grund, warum Sie es beschleunigen müssen? Ist das ein großes Problem?
Dieser Teil wird in diesem Projekt verwendet: Ссылка
Ich werde viele verschiedene Saitenlängen in diese Funktion wiederholen. Der gesamte Prozess dauert etwa 6-15 Sekunden, um Millionen von Zeilen zu beenden. Es gibt andere Teile, die auch involviert werden. Ich versuche, jeden Teil zu beschleunigen.

Q2: Wie langsam ist es jetzt?
OK, ich werde die genaue Zeit erfassen und hier posten. Ich komme später wieder. (wird das Ergebnis morgen veröffentlichen)

Update 29-06-2012
Hallo Leute. Ich habe einen Test gemacht. Das ist das Ergebnis:

Geschwindigkeitstest: String.Replace () - in Millisekunden gemessen Test 1: 26749.7531 ms
Test 2: 27063,438 ms
Test 3: 27753.8884 ms
Durchschnitt: 27189.0265 ms
Geschwindigkeit: 100%

Geschwindigkeitstest: Foreach Char and Append - gemessen in Millisekunden
Test 1: 8468.4547 ms
Test 2: 8348.8527 ms
Test 3: 8353.6476 ms
Durchschnitt: 8390.3183 ms
Geschwindigkeit: 224% & lt; schneller
===================================
Update - Nächster Test (Noch eine Runde)
===================================
------
Test Ersetzen Sie die String-Geschwindigkeit.
Test 1: 26535.6466
Test 2: 26379.6464
Test 3: 26379.6463
Durchschnitt: 26431.6464333333
Geschwindigkeit: 100%
------
Test Foreach Char String Anhängen.
Test 1: 8502.015
Test 2: 8517.6149
Test 3: 8595.6151
Durchschnitt: 8538.415
Geschwindigkeit: 309,56%
------
Test Foreach Char String Anhängen (Fix StringBuilder Length).
Test 1: 8314.8146
Test 2: 8330.4147
Test 3: 8346.0146
Durchschnitt: 8330.41463333333
Geschwindigkeit: 317,29%


Fazit:
Die Verwendung von Foreach Char Loop und Append ist schneller als String.Replace ().

Vielen Dank, Jungs.

--------
Im Folgenden sind die Codes, die ich verwendet habe, um den Test auszuführen: (bearbeitet)

%Vor%     
mjb 28.06.2012, 01:30
quelle

2 Antworten

11
%Vor%     
Serj-Tm 28.06.2012, 01:36
quelle
1

Versuchen Sie es mit einer Reihe von StringBuilder-Aufrufen.

    
hythlodayr 28.06.2012 01:35
quelle

Tags und Links