AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vista: Dateizugriff langsamer?

Ein Thema von Graffi · begonnen am 14. Jul 2008 · letzter Beitrag vom 15. Jul 2008
Antwort Antwort
Graffi

Registriert seit: 5. Apr 2007
Ort: Duisburg
28 Beiträge
 
Delphi 6 Enterprise
 
#1

Vista: Dateizugriff langsamer?

  Alt 14. Jul 2008, 23:20
Hallöchen,

ich habe mal wieder ein kleines Problem mit Vista:

- 2 kleinere Anwendungen tauschen sich via einer simplen Textfile aus
- Anwendung 1 schreibt alle 500ms in das Textfile (max. 20 Zeilen)
- Anwendung 2 liest alle 510 ms das Textfile

(Den kleinen Zeitversatz habe ich eingebracht, falls beide Anwendungen gleichzeitig gestartet würden.)

Anyway, unter 98-XP funktioniert das wunderbar.

Unter Vista blockiert die Anwendung 2 das Schreiben der Anwendung 1. Beende ich Anwendung 2, kann Anwendung 1 wieder wunderbar schreiben.

Ist Vista hier nur langsamer? Oder hat das evtl. noch andere Ursachen?

Grüße, Graffi
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Vista: Dateizugriff langsamer?

  Alt 14. Jul 2008, 23:38
Zum einem würde ich das nicht so synchronisieren, da Timer-Nachrichten keine sehr hohe Priorität im System haben, es ist also nicht garantiert, dass das Timer-Ereignis auch immer "pünktlich" ausgelöst wird. Windows ist eben kein Echtzeit betriebssystem. Zum anderen, wie öffnest du die datei und schließt du sie auch wieder, damit sie von der anderen Anwendung zum Lesen geöffnet werden kann.

Zum Datenaustausch würde ich mir andere Möglichkeiten der Interprozesskommunikation überlegen. Du kannst es ruhig mit Dateien machen, aber dann würde ich der anderen Anwendung eine Nachricht schicken, wann sie lesen kann.

Für kleine Datenmengen eigent sich auch die Nachricht MSDN-Library durchsuchenWM_COPYDATA. Ansonsten würde ich mich mal nach MemoryMappedFiles oder (Named)Pipes oder Mailslots umgucken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Vista: Dateizugriff langsamer?

  Alt 15. Jul 2008, 09:20
Zitat von Graffi:
- Anwendung 1 schreibt alle 500ms in das Textfile (max. 20 Zeilen)
- Anwendung 2 liest alle 510 ms das Textfile
Das ist nicht sehr schlau gelöst.
a) Timer laufen nicht genau und auch nicht verlässlich. Es ist vorgegeben, dass der Timer dann frühestens alle 500 ms ausgelöst wird, es können aber auch mal 800 ms oder 1200 ms sein, wobei es nie 400 ms sein werden.
b) Anwendung2 überhplt irgendwann Anwendung1. Dann wird ein Zyklus nicht gelesen, sondern übersprungen.

Als Lösung würde ich NamedPipes vorschlagen.
Da kann Anwendung2 warten, bis Daten ankommen und diese dann auslesen.
Vorteile:
- nur ein Timer, diesen vielleicht noch durch Delay ersetzen
- Anwendung1 bekommt die volle Steuerung
- Anwendung2 muss nur reagieren, wenn wirklich Daten kommen

Überdenke also das Software-Design nochmal.
Man kann alles irgendwie besser lösen.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Vista: Dateizugriff langsamer?

  Alt 15. Jul 2008, 09:39
Das habe ich doch gestern schon alles geschrieben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#5

Re: Vista: Dateizugriff langsamer?

  Alt 15. Jul 2008, 09:43
Zitat von Luckie:
Das habe ich doch gestern schon alles geschrieben.
Ich wollte es nur noch ein Wenig erweitern und anderst erklären.

/ironie
Und ausserdem will ich die 3000 vollmachen, bevor ich mich verabschiede
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Vista: Dateizugriff langsamer?

  Alt 15. Jul 2008, 10:06
Hier ist noch mal ein Beispiel für Interprozesskommunikation mit MemoryMappedFiles:
http://www.michael-puff.de/Developer...ppets/MMF.html
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Graffi

Registriert seit: 5. Apr 2007
Ort: Duisburg
28 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: Vista: Dateizugriff langsamer?

  Alt 15. Jul 2008, 21:18
Danke euch Zweien für die guten Antworten.

Meine Timerlösung ist zwar nicht das Gelbe vom Ei, aber hat bislang völlig ausgereicht, da absolut nicht zeitkritisch.

@Luckie
Lesen und Schreiben des Textfiles mache ich derzeit über:

Delphi-Quellcode:

tf : textfile;
s : string;


//Schreiben - Anwendung 1

     try
         assignfile(tf,PStatus+'info.txt');
         rewrite(tf);
         writeln(tf,s);
         ...
         closefile(tf);
     except
         //showmessage('Fehler');
     end;

//Lesen - Anwendung 2

begin
     Result := false;
     try
       assignfile(tf,pstatus+'info.txt');
       reset(tf);
       readln(tf,s);
       ...
       closefile(tf);
       Result := true;
     except
       Result := false;
     end;
end;
Wie schon gesagt, unter 98-XT macht das überhaupt keine Probleme.

Gruß Ralf
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:46 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