Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
4. Jul 2022
Interessanter Ansatz, danke. Leider ist diese Variante in meinen Tests langsamer. Der Gesamtvorgang braucht zwischen 60 und 100 ms, mit der Stringliste gesamt zwischen 40 und 60 ms. Wie gesagt, das ist die Gesamtzeit, also Einlesen mit LoadFromFile und anschließende Verabeitung. Daher sind diese Zeitangaben nicht mit den o.g. vergleichbar.
Die Variante hat noch einen weiteren Nachteil: Dateien...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
2. Jul 2022
Nach ein paar Tests mit TStopwatch und einer absichtlich großen PEM-Datei (etwas über 1 MiB) stelle ich Folgendes fest:
Das Problem ist nicht so groß wie es anfänglich schien. Externe Speicherlecksucher schauen eben genauer hin, was seine Zeit braucht. Das hat mich glauben lassen, die Implementation an sich wäre langsam. Naja, im Vergleich mit anderen ist sie das auch, siehe nächster Punkt :)...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
1. Jul 2022
Ja, das ist verständlich. Danke! :thumb: Nun ist klar, warum es knallen musste. Endlich kann ich auf die Zwischenvariable verzichten.
-----
Zwischenzeitlich hatte ich auch einen anderen Weg getestet, bei dem keine Strings aus der Liste gelöscht werden und stattdessen eine Variable mit der aktuellen Zeile hochgezählt wird, ab der in der Schleife gesucht wird. Der Unterschied in der Laufzeit...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
1. Jul 2022
Da ich aus der Vergangenheit hier im Forum weiß, dass Messen in sich ein komplexes Thema ist, habe ich nicht gemessen. Aber trotzdem dauert das Verarbeiten einer Datei mit 132 solcher Blöcke ca. 2 Sekunden (jedenfalls wenn es im externen Speicherlecksucher läuft). Wie gesagt, nicht besonders genau, weil lediglich mitgezählt.
Das muss ich in der Tat mit dem Debugger noch genauer untersuchen, ob...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Dalai,
30. Jun 2022
Hallo *.*.
Gegeben ist eine Textdatei, konkret im PEM-Format (BASE64 codiert). Ziel ist es, alle Blöcke dieser Datei einzulesen in ein Byte-Array - letztlich muss jeder Block in eine CERT_BLOB-Struktur. Bisher mache ich das folgendermaßen:procedure NameNotRelevant;
var
Lsl: TMyStringList;
LidxH, LidxF: integer;
Lstr: string;
begin
Lsl:= TMyStringList.Create;
try