Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   mehrere Datei Schreibvorgänge (https://www.delphipraxis.net/183909-mehrere-datei-schreibvorgaenge.html)

yogie 13. Feb 2015 06:41

mehrere Datei Schreibvorgänge
 
Hallo zusammen,
Programme schreiben ist wie Kinder bekommen … man ist sein ganzes Leben für sie verantwortlich…
Ein Programm, das sich vor über 15 (!!!) Jahren bei meinem damaligen Arbeitgeber entwickelt habe,
verarbeitet Daten, die über eine serielle Schnittstelle von (vereinfacht) mehreren
Analog-Digital-Wandlern stammen. Es gibt für die Geräte mehrere Ausbaustufen, 4, 8
und auch 12 AD-Wandler. Die Daten werden dann jeweils pro 2 AD-Wandlern in Dateien
auf dem PC gespeichert. Mit 8 AD-Wandlern läuft alles gut auch bei hoher Datenrate.

Nun steht, was recht selten vorkommt ein Gerät mit 12 AD-Wandlern zum Verkauf und es
gibt Probleme (kurze "Hänger" im Programm, bis hin zu Abbrüchen), zu denen meine Hilfe
erbeten wurde. Das Alles nur zur Erklärung und nun meine eigentliche Frage :

Wie verwaltet WINDOWS mehre Schreiboperationen auf Dateien?

Die Daten kommen asynchron, also ohne zeitlichen Zusammenhang, im Programm an, und werden
dann per writeln in Dateien geschrieben. Aus Sicherheitsgründen werden die Dateien jeweils
geöffnet und geschlossen. Die Schreibvorgänge liegen nicht in einzelnen Tasks, sondern alle
im Hauptprogramm, werden dort also sequenziell behandelt. Mir ist schon klar, dass es
noch viele andere Ursachen für die beschriebenen Probleme geben kann, aber hier geht es
mir darum, ob es zu einer „Überlastung“ durch (in diesem Fall) maximal 8 Schreibvorgängen
kommen kann und wie man sich die Windows-interne Pufferung vorzustellen hat.

Dejan Vu 13. Feb 2015 06:48

AW: mehrere Datei Schreibvorgänge
 
Was für 'Abbrüche' kommen denn? Wenn man versucht, eine Datei zum Schreiben zu öffnen, die bereits geöffnet ist, kommt nämlich eine Exception (soweit ich mich erinnere). Du musst deine Schreibvorgänge entweder synchronisieren oder eine Queue für jede Datei schreiben.
Synchronisieren: Warten, bis Datei 'frei' ist, dann schreiben.
Queue: Alle Daten in eine Warteschlange schreiben und ein separater Thread schreibt die dann nacheinander in die Datei.

yogie 13. Feb 2015 07:14

AW: mehrere Datei Schreibvorgänge
 
Die Datei wird jedes mal geöffnet und geschlossen.
Details zu den Abbrüchen sind schwer zu spezifizieren,
da ich die Informationen auch nur per mail und Telefon
erhalte. Meine konkrete Frage beruht auch erstmal nur
auf einer Vermutung, ich muß mir mein Programm erst
nochmal aus dem Archiv ziehen. Was isch geschrieben habe
ist aus dem Gedächtnis rekonstruiert.
Bei weniger AD-Wandlern gab / gibt es keine Probleme.

baumina 13. Feb 2015 07:21

AW: mehrere Datei Schreibvorgänge
 
Du solltest definitiv erst einen Blick in deinen Quellcode werfen.

hathor 13. Feb 2015 09:13

AW: mehrere Datei Schreibvorgänge
 
Eine gute Beschreibung ist hier:
http://www.uwe-sieber.de/ntcacheset.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:58 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