AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

String kopieren, was ist schneller?

Ein Thema von SearchBot · begonnen am 8. Jan 2015 · letzter Beitrag vom 9. Jan 2015
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: String kopieren, was ist schneller?

  Alt 8. Jan 2015, 19:41
hmm warum "saust" du nicht einfach mit 2 PChars da durch.

Wenn Du an der richtigen Stelle bist von PCharDest := PCharSource bis du aus dem Bereich bist..

sonst immer nur nette inc's des PChars... nix ist schneller...

Oder habe ich da was falsch verstenden?
Das "Sausen" macht er ja schon mit diesen FastCode-Gedöns-Routinen

Er saust da nur über das Ziel hinaus. Erst in alle Ecken pinkeln, und dann mit der Nase am Boden die Stellen suchen, die nach Laterne unten riechen, die Stelle wischen und dann endlich dort etwas machen. Hört sich nicht nur umständlich an, ist es auch.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#12

AW: String kopieren, was ist schneller?

  Alt 8. Jan 2015, 20:03
Hört sich nicht nur umständlich an, ist es auch.
Also 'umständlich' ist jetzt nicht ... huälp... das richtige Wort. Bezogen auf deinen bildlichen Vergleich.

Geändert von Dejan Vu ( 8. Jan 2015 um 20:13 Uhr)
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#13

AW: String kopieren, was ist schneller?

  Alt 8. Jan 2015, 22:04
Der Ansatz ist wirklich durch die Brust ins Auge und dann ins Knie... Du hast ja mehrere Suchvorgänge, wo doch ein einzelner genügt.

- Du hast eine Routine, die den Startmarker setzt
- Du hast eine Routine, die den Endmarker setzt

Statt den String zu modifizieren, läßt du dir die Position im String jeweils zurückgeben. Das Stück kopierst du heraus und verarbeitest es weiter.
Delphi-Quellcode:
...
sp:=GetStartPosition(RiesenString);
ep:=GetEndPosition(RiesenString, sp); //Sucht ab sp nach dem Ende
VielKleinererString:=copy(RiesenString, sp, ep);
//Weiterverarbeiten des VielKleinererString
BTW... Wenn du den MemoryStream in einen StringStream uschaufelst, wird dann nicht noch eine Kopie erzeugt ?
  Mit Zitat antworten Zitat
SearchBot

Registriert seit: 27. Jun 2004
Ort: N-W vom Bodensee
232 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: String kopieren, was ist schneller?

  Alt 8. Jan 2015, 22:41
Zitat:
OlafSt: BTW... Wenn du den MemoryStream in einen StringStream uschaufelst, wird dann nicht noch eine Kopie erzeugt ?
Ja, aber das macht er nur 1x, danach gebe ich den MemoryStream und StringStream wieder frei. Hab dazu keine andere Lösung gefunden, an den String zu kommen...

Also gut, ok,

die Positionierung kann ich also noch besser machen - aber wie ist das jetzt mit dem rauskopieren meiner Werte, nachdem ich also die Positionen gefunden habe?

Gibt's da was schnelleres als copy und wie müsste das dann aussehen?

Geändert von SearchBot ( 8. Jan 2015 um 22:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: String kopieren, was ist schneller?

  Alt 8. Jan 2015, 22:45
Ähm, du reist von Bremen über Paris, Rom, Madrid nach Hamburg, aber der Weg zur Kneipe um die Ecke ist dir zu weit?

Stell das um, nimm das Copy und schau dir die Zeiten an. Den größten Teil verbrätst du beim Suchen, Suchen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
1.625 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: String kopieren, was ist schneller?

  Alt 9. Jan 2015, 10:05
Ist move für Buffer nicht eine Alternative zu copy?
Andreas
#PerfMatters
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +2. Es ist jetzt 18:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf