![]() |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Da ich mir spontan keine weitere Methode einfällt, geb ich mal einen Kommentar ab:
Ich würde Nr. 2 favorisieren, da dort alles auf Windows-Ebene vonstatten geht. Die MemoryStream-Methode (Nr. 4) lehne ich sehr ab, da diese a) Von der Natur des MemoryStreams her Speicher förmlich "frisst" b) Langsam ist (Windows beginnt schon bei wenigen MB mit Paging [bremst den Einlesevorgang erheblich]) |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Also die MemoryStream Methode wird ab bestimmten Dateigrößen sehr lahm der Rest ist bisher gut gelaufen. am schnellsten war bisher die QuickCopy geschichte, also das Erste.
Edit @H4ndy: Windows ist nicht immer gut :zwinker: Nachtrag zur MemoryStream Methode: bei kleine Dateien bis ca. 30 MB ist das(auf meinem Rechner) die schnellste Methode. |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Zitat:
Ist aber IMHO die Methode, wo die wenigsten Fehler passieren können. Wer mehr Kontrolle über den Kopiervorgang braucht, kann ja #1 benutzen. (Mit nem Block-Lese Algorithmus ist ein Fortschrittsbalken kein Problem) |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Neue und bisher schnellste(!!!!100000 ms wo andere 160000ms brauchen!!!!) Methode:
Delphi-Quellcode:
Edit: UUps : das ist Methode 1 nur ohne try except Block(verlier grad bissl den Überblick.. aber warum ist die so schnell???
function TtfMain.StreamCopy(AVon, ANach : string): Boolean;
var stream1,stream2 : TStream; begin stream1 := TFileStream.Create(AVon, fmOpenRead); try stream2:= TFileStream.Create(ANach, fmCreate); try stream2.CopyFrom(Stream1, Stream1.Size); finally stream2.Free; end; finally stream1.Free; end; end; Edit2: :shock: noch ein Vergleich von 1 und 7 ... beid liegen bei ca 82000... :gruebel: was ist mit meinem Rechner los?? Die anderen brauchen ewig... |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Wegen dem Speedtest.
Beende mal alle unötigen prozesse und sag uns mal was du für eine Hardware verwendest. und wenn du noch so nett wärest ein speed-tester für andere zu machen... :P |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Liste der Anhänge anzeigen (Anzahl: 1)
OK hier hab ich mal das Prog.
Warnung: Benutzung auf eigene Gefahr, ich übernehme keinerlei Haftung für aufkommende Schäden :mrgreen: (Das Programm ist so verbuggt, da musste ich das einfach dazuschreiben) |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Zitat:
Windows ist nämlich nicht doof und führt einen prefetch durch. Wenn du ein und die selbe Datei zwei mal hintereinander kopierst, wird der zweite Kopiervorgang bei 99,99%iger Wahrscheinlichkeit schneller sein wie der erste. (Zumindest bei meinen Beobachtungen) |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
OK, ich hab das jetzt getestet.
der 2. versuch IST schneller, da die datei dann schon / noch im cache liegt. Für 135.168 Bytes brauch ich bei (Schnellster- /langsamster Versuch):
Meine Configs sind: ASRock K7VT4A+ (größter mist wo gib); AMD Athlon XP 3000+; 1 GB DDR Ram; Maxtor 120 GB (7.200 u) IDE; und Windows XP SP 2. |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Ich glaube, die Tests sollten lieber mit großen Dateien durchgeführt werden,
weil dann die Schwankungen nicht bis zu 50% von der Gesammtzeit ausmachen :? @Angel4585 Desweiteren würde mich mal interessieren, welche Zeitmessroutine du genommen hast. GetTickCount könnte hier ungenau werden. Besser wäre hier ein PerformanceCounter. Edit: Habs mal selber getestet Datei: xampp-win32-1.5.1-installer.exe (30.424.567 Bytes, ~29MB) Virenscanner ist AUS System: PIII 800MHz, 512MB RAM, WinXP SP2 (Alles Durchschnittswerte nach 4 Versuchen) QuickCopy: ~1389ms CopyFile: ~1246ms FileOperation: ~1284ms MemoryStream: ~1742ms JCLFielCopy: ~1238ms AssignFile: ~2491ms StreamCopy: ~1312ms Wie man sieht, sind nur MemoryStream und AssignFile wirklich langsamer als die anderen Methoden. Desweiteren hab ich Schwanker von bis zu 400ms dabei gehabt. (Einmal dauerte es sogar nur ~550ms...) Ich denke mal es ist einfach ne Glaubensfrage, welchen Algo man nimmt ^^ |
Re: Verschiedene Möglichkeiten zum Verschieben von Dateien
Also ich verschieb ne Datei mit 1 GB
und brauche im Schnitt ca 80000 ms für jede der Varianten, ich glaub die Unterschiede kamen nur daher das der Rechner gestern irgendwie gesponnen hat. Edit: Memory Stream ausgenommen, die braucht 10 mal so lang bei so großen Dateien :!: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 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