Hallo zusammen,
ich habe ein kleines Backup-Programm geschrieben.
Features:
Ich freue mich über viel konstruktive Kritik 😉
Gruß
stes
Hier der Quellcode des Programms.
Da Performance mein Hobby ist hab ich mir mal erlaubt Deine Aussage bzgl. der Performance zu untergraben 😉
Mal so als Anregung: Da Du immer DirectoryInfo und FileInfo nutzt, wird unnötig viel Overhead geladen - dies merkt man vor allem bei der Verwendung von Netzwerkressourcen über SMB.
Bei vielen kleinen Dateien ist Dein erzeugter Overhead größer als der Inhalt der eigentlichen Datei! Auch wunderbar im Wireshark nachzuvollziehen.
Verwendete stattdessen besser direkt die Windows API.
Zum Beispiel mit dem Wrapper FastDirectoryEnumerator. Hier hast Du wirklich messbare Unterschiede zu Windows. Vor allem über Netzwerke.
Deine 60% im Gegensatz zu den 100% konnte ich nicht bestätigen.
Grüße
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo,
das Projekt ist zwar mittlerweile schon etwas älter, aber danke für die Rückmeldung ^^
Deine 60% im Gegensatz zu den 100% konnte ich nicht bestätigen.
Muss ich dann demnächst ggf. mal überprüfen, ansonsten werde ich es korrigieren 😉
Aber danke für den Link, werde ich mir mal genauer ansehen. Wenn man den Zahlen trauen darf:
Directory.GetFiles method: ~225ms
DirectoryInfo.GetFiles method: ~230ms
FastDirectoryEnumerator.GetFiles method: ~33ms
FastDirectoryEnumerator.EnumerateFiles method: ~27ms
sowie
Directory.GetFiles method: ~43,860ms
DirectoryInfo.GetFiles method: ~44,000ms
FastDirectoryEnumerator.GetFiles method: ~55ms
FastDirectoryEnumerator.EnumerateFiles method: ~53ms
sind das allerdings "messbare Unterschiede"!
Gruß
stes