AGB  ·  Datenschutz  ·  Impressum  







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

Performance von AssignFile etc.

Ein Thema von messie · begonnen am 21. Okt 2009 · letzter Beitrag vom 21. Okt 2009
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

Performance von AssignFile etc.

  Alt 21. Okt 2009, 16:21
Moin,

ich habe eine Anwendung, die ersten n Byte von Binärdateien auslesen muss. Dazu werden die Dateien einige Male hintereinander geöffnet.
Nun habe ich tausend Dateien, die übers Netz geöffnet werden und da wird das Gesicht immer länger. Ich vermute, die Kommunikation über den Server (großes weltweites Firmennetz) bremst da entscheidend.
Ich wollte in dem Zusammenhang aber mal fragen, wie die Performance der Dateioperationen aussieht. Ich benutze Assignfile und read, gibt es da erheblich schnellere Routinen, die vielleicht günstiger mit dem Cache umgehen?

Grüße, Messie
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Performance von AssignFile etc.

  Alt 21. Okt 2009, 16:23
Dir ist aber bewusst, das wenn du eine Datei übers Netzwerk öffnest, eine lokale Kopie (bzw. Teilkopie) der Datei angelegt wird?
Markus Kinzler
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

Re: Performance von AssignFile etc.

  Alt 21. Okt 2009, 16:43
Es kommt darauf an, wie groß die einzelnen Speicherblöcke sind, die am Stück eingelesen werden.
256 * 4 Bytes braucht wesentlich mehr Zeit als 1 * 1024 Bytes.
Im Anhang ist dazu ein Testprogramm.
Damit kannst du die Lese- und Schreibgeschwindigkeit auf der lokalen Platte und übers Netzwerk ausmessen.

Ich habe hier 1GBit/s Ethernet ; damit ist kaum ein Unterschied zwischen einer Datei im Netz und Lokal festzustellen.
Angehängte Dateien
Dateityp: zip filespeedtest_145.zip (178,5 KB, 6x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Performance von AssignFile etc.

  Alt 21. Okt 2009, 16:56
Zitat von messie:
Ich wollte in dem Zusammenhang aber mal fragen, wie die Performance der Dateioperationen aussieht. Ich benutze Assignfile und read, gibt es da erheblich schnellere Routinen, die vielleicht günstiger mit dem Cache umgehen?
Die greifen alle auf CreateFile und ReadFile der WinAPI zurück.Performance kannst du IMHO nur durch geschickte Wahl der zu lesenden Blöcke machen (siehe shmia)
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.178 Beiträge
 
Delphi 12 Athens
 
#5

Re: Performance von AssignFile etc.

  Alt 21. Okt 2009, 17:02
und AssignFile hat auch noch einen eigenen Puffer (es werden also immer mindestens Min(128, FileSize) Bytes geladen + den Puffer der Netzwerkroutinen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Performance von AssignFile etc.

  Alt 21. Okt 2009, 18:09
Danke schonmal. Wenn ich mal wieder an den Endkunden komme, werde ich das Netz dort mal testen.

Im aktuellen Beispiel werden 20 x 80 Byte ausgelesen. Und das zwei- bis dreimal pro Datei. Wir hatten das in einem offenen Netzwerk getestet, da dauerte es einige Sekunden (<30), ähnlich wie lokal auf der Festplatte. Also noch nicht wirklich störend. Über den Server dauert es bei 200 Dateien etwa zwei Minuten. Vielleicht haut da auch die Sicherheitssoftware dazwischen, das hatte ich schon mal.

Grüße, Messie
  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 16: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