AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein FileExists/FileDate - Auslesen über Netzwerk langsam
Thema durchsuchen
Ansicht
Themen-Optionen

FileExists/FileDate - Auslesen über Netzwerk langsam

Ein Thema von dGeek · begonnen am 10. Sep 2016 · letzter Beitrag vom 12. Sep 2016
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

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

AW: FileExists/FileDate - Auslesen ber Netzwerk langsam

  Alt 10. Sep 2016, 19:44
Also erst mal könnte man den leeren Exception Block in die Tonne kloppen.
1. Überflüssig, wenn so wieso leer.
2. FindFirst wirft keine Execption: http://docs.embarcadero.com/products...FindFirst.html

Ergo total überflüssig.

Aber ohne näher Angaben über das Netzwerk (Auslastung, Größe, Server, Freigaben, Samba? wird man nicht viel dazu sagen können.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#2

AW: FileExists/FileDate - Auslesen ber Netzwerk langsam

  Alt 10. Sep 2016, 19:52
Ich würde es eher Spielerei nennen

Es ist eine ganz normale Western Digital Festplatte an einem USB-Port meines Routers.
Wenn ich eine große Datei auf die Festplatte kopiere, so geschieht das mit den erwarteten 100 Megabit (~11 MByte sagt Windows)
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#3

AW: FileExists/FileDate - Auslesen ber Netzwerk langsam

  Alt 11. Sep 2016, 12:47
Es ist eine ganz normale Western Digital Festplatte an einem USB-Port meines Routers.
Wenn ich eine große Datei auf die Festplatte kopiere, so geschieht das mit den erwarteten 100 Megabit (~11 MByte sagt Windows)
Ein Netzwerk mit 100 Megabit ist für eine Festplatte sehr langsam.
Gibt es beim USB-Port auch eine Möglichkeit zu wählen, ob "schnelles Entfernen" oder "mit Cache"?
Das macht einen Unterschied um den Faktor 3.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.869 Beiträge
 
Delphi 12 Athens
 
#4

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 13:12
Das ganze ist sehr einfach:
Andere Tools (auch meine) gehen die beiden Dateilisten einmal durch, speichern die Daten alle und vergleichen danach. Daher ist nur ein Abruf der Dateiliste nötig und die Dateidaten (Dateiname, -größe, -datum) sind ja in dieser Liste mit drin.

Du scheinst hingegen zuerst die Liste abzurufen und dann für jede Datei noch einmal die Dateiliste anzufragen um die Datumsinformationen zubekommen, zu fragen ob sie existiert, ... das dauert ewig.
Sebastian Jänicke
AppCentral

Geändert von jaenicke (11. Sep 2016 um 13:14 Uhr)
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#5

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 13:17
Zitat:
speichern die Daten alle und vergleichen danach.
Du meinst, dein Programm kopiert die Quelldaten zum Zielverzeichnis und DANACH wird erst geguckt, was im Zielverzeichnis gebraucht wird?

Bei mir ist es so:

ich gehe die Liste der Quelldaten einmal durch.
Dann wird immer geguckt:
- "Gibt es Quell-DateiX auch im Zielverzeichnis? (FileExists)
- JA > Quelldatei mit Zieldatei vergleichen (Datum)
- Quelldatei neuer als Zieldatei? JA > in eine andere Liste schreiben (keine StringList...)

Lasse ich FileExists und den Datumsvergleich weg, ist alles wunderbar zackig schnell.
Seltsam ist ja nur.. es ist NUR von PC-HDD zu Netzwerk-HDD langsam.
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.650 Beiträge
 
Delphi 12 Athens
 
#6

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 13:36
Zitat:
speichern die Daten alle und vergleichen danach.
Du meinst, dein Programm kopiert die Quelldaten zum Zielverzeichnis und DANACH wird erst geguckt, was im Zielverzeichnis gebraucht wird?
Ich denke, jaenicke scannt Quell und Zielverzeichnis in einem Ruck durch und prüft dann, welche Unterschiede es gibt. Danach wird dann kopiert oder eben nicht.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 11. Sep 2016, 13:50
1. Daten sammeln (Dateien einmal scannen und die Daten in eine Liste ablegen)
2. Gesammelten Daten vergleichen und zu kopierende Dateien in einer Liste ablegen
3. Dateien nach der Liste kopieren

Was du machst:
1. Einzelne Datei scannen
2. Vergleichen
3. Kopieren
Es muss also für jede einzelne Datei alles immer wieder neu initialisiert werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#8

AW: FileExists/FileDate - Auslesen ber Netzwerk langsam

  Alt 10. Sep 2016, 19:54
Also Delphi 7 kennt die Funktion FileAge, die Hilfe schreibt dazu:
Zitat:
Die Funktion gibt den Zeitstempel des Betriebssystems von einer Datei zurück.

Unit

SysUtils

Kategorie

Dateiverwaltung

Delphi-Syntax:

function FileAge(const FileName: string): Integer;

Beschreibung

Mit FileAge können Sie den Betriebssystem-Zeitstempel der in FileName angegebenen Datei ermitteln. Der Rückgabewert kann anschließend mit der Funktion FileDateToDateTime in ein TDateTime-Objekt konvertiert werden. Ist die angegebene Datei nicht vorhanden, wird der Wert -1 zurückgegeben.
Würde dann nicht sowas reichen?
Delphi-Quellcode:
function IsFileANewerFileB(aFileA, aFileB: string): Boolean;
begin
  Result := FileAge(aFileA) > FileAge(aFileB);
end;
  Mit Zitat antworten Zitat
dGeek
(Gast)

n/a Beiträge
 
#9

AW: FileExists/FileDate - Auslesen ber Netzwerk langsam

  Alt 10. Sep 2016, 19:59
Verstehe ich nicht. Egal ob FindFirst oder FileAge. Alles gleich langsam.
In 15 Sekunden prüft er ~2700 Dateien (Durchgänge).

Wenn Quelle und Ziel eine fest im PC installierte Festplatte sind, dauert das ganze keine 3 Sekunden mit 10.000 Durchgängen.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.683 Beiträge
 
Delphi 5 Professional
 
#10

AW: FileExists/FileDate - Auslesen über Netzwerk langsam

  Alt 10. Sep 2016, 21:38
Die Geschwindigkeit des Netzwerks spielt hier eine stark untergeordnete Rolle. Wichtig ist die Latenz, und die ist nunmal in einem Netzwerk um Faktoren größer als bei einer lokal verbauten Platte. Und wenn es dann noch ein Plasterouter ist, sieht die Welt eh wieder anders aus (lies: Latenz noch größer), denn das sind nunmal keine NAS oder ähnliche auf LAN und SMB optimierte Geräte.

Grüße
Dalai
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 11:07 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 by Thomas Breitkreuz