![]() |
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
PS: paralelle Zugriffe auf eine Festplatte bremsen sich gegenseitig aus.
Die Leseköpfe sind langsam - also sequentielles Arbeiten ist da besser (solange zwischendurch nicht mindestens genausolange gerechnet, wie auf dem Datenträger drauf rumgemacht wird) |
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Zitat:
|
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Und ich habe gerade auch schon erwähnt, dass genau das durch die MMF minimiert wird. Wir drehen uns im Kreis. Hilfe, eine Zeitschleife. :mrgreen:
|
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Zitat:
Gruß K-H |
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Zitat:
|
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
In dem verlinkten Thread findest du eine Demo. Von SSD habe ich damit Geschwindigkeiten von 300 MiB/s beim zeichenweisen (!) Auslesen. ;-)
|
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Zur Erklärung:
Jeder Thread hat einen TCP Client. Dieser empfängt über ein Kommando eine Hex-ID. Mit dieser ID sucht sich nun der Thread aus dem Textfile den dazu passenden String. Danach startet die eigentliche Abarbeitung der empfangenen Daten. Um die Textdatei ändern zu können ohne die Anwendung neu starten zu müssen habe ich das File bei jeder Abfrage neu geöffnet und nach der Suche wieder geschlossen. Wenn ich die Datei einmal öffne und global zur Verfügung stelle werden ja externe Änderungen der Textdatei nicht berücksichtigt. Dann müsste man immer wieder einmal überprüfen ob sich die Datei verändert hat (vielleicht wieder ein eigener Thread). Um die globale geöffnete Datei zur Laufzeit zu verändern/upzudaten würde dann aber auch eine Threadsichere TStringList benötigt. Oder man started halt die Anwendung neu, was zu einer Unterbrechnung der Verbindung führen würde. |
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Las mich raten, die Datei ist eine filebasierte Datenbank Datei und du möchtest die Datenbank umgehen?
Vielleicht um die beknackten Windows Freigaben nicht machen zu müssen? Ich glaube nicht das du das sooo hinbekommst. |
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Das macht auch gar keinen Sinn das zu versuchen.
Genau für das was du beschreibst gibt es Datenbanken... |
AW: while not Eof(myFile), wie CPU Load in den Griff bekommen?
Wenn ich das jetzt richtig verstanden habe, gibt es maximal $FFFF Strings, die sollten eigentlich problemlos in einer Stringlist verwaltbar sein. Mit sorted=true Und einer Bin.Suche sollte das Suchen so schnell gehen, daß für das Einfügen/Überschreiben neuer Daten genug Zeit bleibt, da könnte man wahrscheinlich noch öfters mal eine Sicherung fortschreiben.
(ein Feuervögelchen realisiert das bestimmt einfacher, aber für echte Männer gilt: für solche Kleinigkeiten brauch ich doch keine DB) Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 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