![]() |
Frage zur Performance
Hallo,
ich arbeite sehr gerne mit zeichengetrennten Stringlisten als "Datenspeicher". Wenn es nun auf Geschwindigkeit ankommt, was wäre eher vorzuziehen? Eine TStringlist vom Aufbau: Data1;Param1 Data2;Param2 oder ein Record vom Aufbau: type test=record Data:String; Param:int64; Und das Ganze als Array |
AW: Frage zur Performance
Keins von beiden.
Ich würde dafür vielleicht sogar ein TDictionary nehmen. |
AW: Frage zur Performance
Die StringList kann man sortieren und auch den ValueNameSeparator auf ; einstellen.
Sortiert ist IndexOf schneller, aber leider hilft IndexOf nicht bei Zugriffen über [Name] und beim Zuweisen gibt es Probleme, denn der Values-Setter ist für sortierte Listen verboten. Also ja, ein TDictionary<String,Int64> . |
AW: Frage zur Performance
Spielt die Reihenfolge der Einträge eine Rolle oder nicht?
Wenn nicht, würde Dich also dann nur der Wert zu einem Schlüssel interessieren? |
AW: Frage zur Performance
Ich sollte die Frage nicht allgemein, sondern bezogen auf meinen speziellen Fall richten.
Denn üblicher Weise kann es bei mir auch schon mal vorkommen das aus den zwei Einträgen pro Datensatz 4 werden. Ein Record oder eine Stringliste ist da sehr schnell drauf anzupassen. Deswegen mein akuter Fall: Hier spielt die Reihenfolge der Einträge keine Rolle und es bleibt bei zwei Einträgen pro Datensatz. Jedoch muss die Liste so dann und wann verändert werden. Sprich, es fallen Einträge raus oder es kommen neue hinzu. EDIT Allerdings wird der Key auch zeitweise leer sein. (Er ist nicht eindeutig) |
AW: Frage zur Performance
Schau Dir mal je nach Deiner Delphi-Version
TDictionary (wie oben empfohlen) oder eine "binäre Suche" für eine Liste an (der gesuchte Eintrag wird so schnell gefunden). |
AW: Frage zur Performance
Zitat:
Vielleicht solltest Du und lieber mal erklären, wofür Du das verwendest oder was Du erreichen willst. Mavarik |
AW: Frage zur Performance
Zitat:
Wenn der Benutzer sich verbindet, ist zunächst nur seine unique ID bekannt. Erst wenn er sich einloggt, wird dazu der Name ergänzt. Solange gilt er als "unbekannt" mit eingeschränkten Rechten. |
AW: Frage zur Performance
Zitat:
ID, UniqueID, Name, More;Key UniqueID,Key Name oder mit 2 Dictionary...
Delphi-Quellcode:
PUser = ^TUser;
TUser = Record UniqueID : TGUID; Name : String; More : TWhatever; end; SearchID : TDictionary<String,PUser>; SearchName : TDictionary<String,PUser>; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20: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