![]() |
Performance von AssignFile etc.
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 |
Re: Performance von AssignFile etc.
Dir ist aber bewusst, das wenn du eine Datei übers Netzwerk öffnest, eine lokale Kopie (bzw. Teilkopie) der Datei angelegt wird?
|
Re: Performance von AssignFile etc.
Liste der Anhänge anzeigen (Anzahl: 1)
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 :P ; damit ist kaum ein Unterschied zwischen einer Datei im Netz und Lokal festzustellen. |
Re: Performance von AssignFile etc.
Zitat:
|
Re: Performance von AssignFile etc.
und AssignFile hat auch noch einen eigenen Puffer (es werden also immer mindestens Min(128, FileSize) Bytes geladen + den Puffer der Netzwerkroutinen
|
Re: Performance von AssignFile etc.
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:06 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