AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Strings schnell kopieren?

Ein Thema von alcaeus · begonnen am 6. Okt 2004 · letzter Beitrag vom 6. Okt 2004
Antwort Antwort
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#1

Strings schnell kopieren?

  Alt 6. Okt 2004, 10:04
Hi allerseits,

in einer relativ zeitaufwändigen Routine (die ich optimieren will/muss ) kopiere ich x Zeichen aus einem langen String: Packet := Copy(InputText, i, PacketLength); Allerdings funktioniert das nicht so schnell. Gibt es eine Möglichkeit, Strings schneller zu kopieren? Ich hab hier schon öfter was mit Pointern gesehen, finde es aber nicht mehr und kann mich auch nicht dran erinnern.

Thanx and Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
LoL
(Gast)

n/a Beiträge
 
#2

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 10:20
hi

ich weis den quellcode jetzt nicht auswendig aber du musst dir einen PChar Zeiger auf das Zeichen setzten mit dem du anfangen willst und dann den Zeiger immer um die Größe eines Char verschieben
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#3

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 10:28
Hi,

Du könntest es auch mal mit der FastStrings Unit probieren.
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#4

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 10:43
Hi Toms,

mit der Unit geht das ganze schon fast 11% schneller, danke!

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#5

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 12:30
für alle die es intressiert hier mal ein Benchmark für die Kopierfunktion von Strings.
Angehängte Dateien
Dateityp: zip faststringtest.zip (177,6 KB, 26x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 12:36
Da ist bei mir die Unit um fast den Faktor 2 schneller als die Delphi-Strings. Kross...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#7

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 12:37
ja bei mir auch!
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#8

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 12:37
Zitat von dizzy:
Da ist bei mir die Unit um fast den Faktor 2 schneller als die Delphi-Strings. Kross...
Nicht schlecht. Bei mir warens wahrscheinlich nur 11%, da ich noch einige andere Aktionen durchführen muss. Aber dass die Unit schneller ist, ist sicher.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#9

Re: Strings schnell kopieren?

  Alt 6. Okt 2004, 12:39
Zitat von der droopyeyes Seite:
Zitat:
There is no PosWithIndex in Delphi, so we were using Pos(Copy()). Using FastStrings to parse our XML data we were able to cut our processing time down from 5 hours to only 15 seconds.
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


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 +1. Es ist jetzt 21:26 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz