Co jest szybsze, kopiując wszystko naraz lub jedną rzecz na raz?


17

Przesyłam kilka (ponad 20) dużych plików (ponad 1 GB) na zewnętrzny dysk flash przez USB 2.0. Czy szybciej jest po prostu zawiesić je wszystkie naraz (tak jak w jednym na raz, ale nie czekając na zakończenie poprzedniego transferu), aby realizować wiele transferów, lub przenieść jeden, poczekać, aż zakończy się, przenieść następny . Pliki pochodzą z różnych lokalizacji, więc nie mogę wykonać jednego dużego transferu.

Czy są jakieś inne zalety tego lub innego sposobu, które warto rozważyć?


Ile kosztuje „Pęczek”
Moab

20+, pytanie zaktualizowane.
fredley,

6
Jest tu kilka bardzo interesujących odpowiedzi teoretycznych, ale chciałbym zobaczyć prawdziwe dane. Jak możemy skonfigurować wiarygodny test?
Wyskakuje

Odpowiedzi:


19

Jeśli wszystkie pochodzą z różnych dysków fizycznych, ale są zapisywane na dysku SSD (flash, SSD), możesz skopiować je jednocześnie.

Fizyczny ruch głowy (opóźnienie) spowalnia transfer z obracającego się talerza. Jeśli kopiujesz z jednego dysku twardego, zaczniesz od jednego dużego transferu, a nie od wielu małych. To, co spowalnia przesyłanie, przesuwa się między dwoma lub więcej kopiowanymi plikami. Oczywiście uzyskałbyś ten sam efekt, gdyby dysk twardy był mocno pofragmentowany, nawet jeśli kopiowałeś pojedynczy plik.

Gdyby znajdował się między dyskami półprzewodnikowymi, nie miałoby to znaczenia.

Jeśli nie chcesz czekać na zakończenie każdego transferu, użyj aplikacji kolejkowania kopii, takiej jak Teracopy .

Oczywiście wąskim gardłem byłoby szybkość zapisu na dysku flash, więc prawdopodobnie nie ma znaczenia, w jaki sposób to zrobisz. :)


1
Doskonała odpowiedź, choć ja sam wolę FastCopy . :-)
afrazier

Teracopy jest świetne! Podoba mi się sposób, w jaki automatycznie zastępuje system kopiowania plików Windows. Dzięki ogromne zwiększenie prędkości!
fredley,

Choć brzmi to logicznie i właśnie tak myślę. ale praktyka okazuje się inna, mam pamięć flash USB, która kopiuje pojedynczy plik (z dysku SSD) z prędkością 30 MB / s, ale kiedy próbuję skopiować trzy pliki w tym samym czasie w tym samym środowisku, prędkość spada do 2,5 MB / s na kopię wątku. Szybkość spada do 7,5 MB / s z 30 MB / s.
Syzyf

2

Jeśli dysk docelowy jest dyskiem SSD, pamiętaj, że dyski SSD są, o co tu chodzi, cholernie szybkie . (*)

Jeśli miejsce docelowe jest wolniejsze (od pamięci flash z niezbyt wysoką szybkością zapisu na dysk twardy SATA3 po taśmę magnetyczną), należy umieszczać w kolejce transfery pojedynczo.

Na pewno twoje wąskie gardło znajdzie się na dysku docelowym

W przypadku dysków twardych zaleca się to obecnie, ponieważ chociaż w cylindrze znajduje się więcej niż jedna głowica, nie wolno im jednocześnie czytać ani pisać (nie pokazało to wpływu na wydajność w rzeczywistym świecie ze względu na fakt, że możemy napotkać losowe dane w jedna z głowic, która przez większość czasu nie pozwalała nam na R / W, a jeśli głowice nie są całkowicie wyśrodkowane, może to prowadzić do uszkodzenia dysku).

Zdrowy rozsądek (i także matematyka!) Mówi, że jeśli mamy bardzo bardzo źródło, ale możemy sprawić, że równoległe przesyłanie plików, wyszukiwanie głowy może (w niewielu scenariuszach) być szybsze niż serializacja zadania.

(*) To znaczy, jak stwierdza Nnewton, ponieważ nie ma ruchu głowy. Ale czy nie powinniśmy używać terminu latencja : opóźnienie to ruch głowy + opóźnienie obrotu dysku + czas odczytu, a na dysku SSD jest to po prostu losowy czas odczytu i nie zależy od poprzedniej pozycji odczytu, jak to robią dyski


2

Za pomocą wbudowanego narzędzia do kopiowania plików w systemie Windows oba są strasznie wolne. Możesz rozważyć użycie alternatywnej aplikacji, takiej jak TeraCopy .


1

Jeśli kopiujesz przez protokół IP (FTP / SCP / Samba / itp.), To jest mniejszy narzut, aby skopiować jeden plik, ponieważ między każdym plikiem jest wiele uzgadniania.

W tym przypadku, ponieważ jest dużo plików i jest ich niewiele, nie będzie to miało większego wpływu na to, co robisz, i prawdopodobnie łatwiej będzie je skopiować.


0

Najlepiej jest pisać pojedynczy plik na raz.

Prawdopodobnie przekonasz się, że przepustowość dysku flash zostanie dość łatwo nasycona. (Dysk źródłowy raczej nie będzie wąskim gardłem.) Chociaż USB 2.0 może przesyłać do 480 MB, twój dysk flash jest prawdopodobnie ograniczony do ~ 20 MB. Oznacza to, że gdy przesyłasz kilka plików z dysku twardego (dysków twardych), maksymalna prędkość zapisu na dysku flash będzie większa, a każdy plik zostanie zapisany wolniej, ponieważ muszą się dzielić.

Ponadto, pisząc wiele plików jednocześnie, zwiększasz fragmentację, ponieważ jeśli miejsce na pliki nie zostanie w pełni przydzielone, gdy tylko rozpocznie się transfer, zostaną one podzielone na części podczas przesyłania plików.

(Na szczęście, ponieważ dyski flash są półprzewodnikowe, nie ma głowy, która musiałaby rzucać się tam iz powrotem, tak jak w przypadku przesyłania wielu plików na dysk twardy).

Kolejną wadą pisania wielu plików jednocześnie jest to, że okna dialogowe kopiowania plików wskazują tylko postęp i pozostały czas dla tego pojedynczego pliku, a oszacowanie całkowitego czasu jest prawie niemożliwe, ponieważ nie jest on liniowy (nie można po prostu dodać im). Przeniesienie ich razem zapewni znacznie dokładniejsze informacje zwrotne dla całego transferu.

Jeśli pliki źródłowe pochodzą z różnych źródeł (masz na myśli różne dyski twarde? CD / DVD? Dysk sieciowy? Czy tylko foldery?), Możesz użyć dedykowanego narzędzia do kopiowania plików zamiast wbudowanego systemu Windows w działaniu. Niektóre opcje obejmują narzędzie Microsoft TechNet Robocopy , które ma również interfejs GUI , RichCopy (również z TecNet), który jest ulepszonym narzędziem opartym na Robocopy, oraz Teracopy , który specjalizuje się w zapewnianiu jak najbardziej wydajnego transferu (i ma Darmowa wersja).


0

OK, ponieważ OP powiedział konkretnie, że kopiuje je przez USB 2.0 do jednego celu, muszę powiedzieć jedno po drugim, niezależnie od źródła.

S = Szeregowy. Wiele strumieni plików = koszty ogólne.

Ale w praktyce ...

Podczas kopiowania z wielu źródeł czas stracony na wiele strumieni byłby więcej niż nadrobiony, gdyby nie trzeba było ręcznie budować „kolejki” kopii. I to jest łatwiejsze. ;)

Ponadto, jeśli kopiujesz w wielu strumieniach, a jeden nie powiedzie się, reszta prawdopodobnie zakończy się.


0

Czas przetwarzania elektronicznego zaoszczędzony przez indywidualne ładowanie musiałby być znaczny, aby nadrobić czas stracony między fizycznym oczekiwaniem na zakończenie ładowania każdego pliku a przeniesieniem kolejnego osobno.


Przeczytaj inne odpowiedzi, zanim napiszesz nową odpowiedź
yass
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.