AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Stringkonkatenation ist schneller als direktes Kopieren?
Thema durchsuchen
Ansicht
Themen-Optionen

Stringkonkatenation ist schneller als direktes Kopieren?

Ein Thema von alzaimar · begonnen am 19. Mär 2008 · letzter Beitrag vom 19. Mär 2008
 
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14

Re: Stringkonkatenation ist schneller als direktes Kopieren?

  Alt 19. Mär 2008, 21:46
Zitat von alzaimar:
@jbg: Wir argumentieren doch immer so, das bei einer Stringkonkatenation (hier) 1 Mio mal neuer Speicher angefordert und der String umkopiert werden muss, und das dauert und daher sollte man V2 nehmen.
Das ist auch so richtig. Nur gehen wir dabei nicht mehr mit der Zeit. Wenn FastMM4 im Spiel ist, werden String-Konkatenationen schon mal von Haus aus schneller, weil nicht mehr für jedes zusätzliche Zeichen neuer Speicher angefordert wird, sondern immer in größeren Blöcken. Das wird dann zwar mit mehr Speicherverbrauch bezahlt, aber bei den heutigen RAM Größen ist das vernachlässigbar.
Zum anderen kommen bei heutigen Systemen mehrere CPUs ins Spiel. Dort sind die CPU LOCKs (derer gleich drei Stück in LStrAsg enthalten sind) teurer, weil ja tatsächlich eine andere CPU auf den Speicher zugreifen könnte. Davon sind Hyperthreading Prozessoren ebenfalls betroffen.

Zitat:
Wenn man das dann mal manifestieren will (sozusagen als Demo fur Dummies), fällt man so richtig (aber so richtig!) auf die Plautze.
Compilermagic kann eben grausam sein.

Zitat:
Ehrlich gesagt bin ich etwas verwirrt.
Das bin ich zwar nicht, aber um das ganze Schneller zu machen, muss nun der ohnehin schon kompliziertere Code nochmals verkompliziert werden. Am Schluss blickt man dann gar nicht mehr durch, weil es nur noch so von "Compiler lass die verdammte Compilermagic hier weg" Anweisungen so wimmelt.
  Mit Zitat antworten Zitat
 


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 13:46 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 by Thomas Breitkreuz