Czy istnieje sposób na szybsze przesyłanie tysięcy małych plików w systemie Windows 7?

30

Zauważyłem, że jeśli przesyłam kilka dużych plików między dwoma dyskami twardymi, jest to dość szybkie, z szybkością co najmniej 30 MB na sekundę, ale jeśli przesyłam tysiące plików mniejszych niż 5 KB, jest to cholernie zbyt wolno ... około 1 do 2 MB na sekundę.

Czy istnieje sposób na przyspieszenie procesu kopiowania / wklejania dzięki tysiącom małych plików w systemie Windows 7?

netrox
źródło

Odpowiedzi:

19

Możesz rzucić okiem na TeraCopy, który jest programem do kopiowania i przenoszenia plików z maksymalną możliwą prędkością poprzez dynamiczne dostosowywanie buforów, aby skrócić czas wyszukiwania. TeraCopy może także wykonywać kopiowanie asynchroniczne, które przyspiesza transfer plików między dwoma fizycznymi dyskami twardymi.

Osobiście korzystałem z tej aplikacji i odkryłem, że przyspiesza ona przesyłanie plików, co zwykle zajmuje trochę czasu.

Mam nadzieję, że to pomaga niektórym.

Chris
źródło
1
@netrox: wysoce, wysoce zalecane Teracopy. +1
studiohack
2
TeraCopy zawiesił się dla mnie, więc nie polecałbym go, ponieważ istnieje ryzyko utraty danych.
Simon Morgan,
3
Miałem odwrotny problem - skopiowanie 1m małych plików spowodowało awarię Eksploratora, ale TeraCopy działało dobrze!
RobinL,
9

Spakować pliki, a następnie przesłać większy plik ZIP? Nie wiem jednak, jak długo potrwa to ZIP (i czy całkowity czas jest szybszy).

Kevin Yap
źródło
8
Nadal musisz odczytać wszystkie pliki po stronie źródłowej i zapisać je wszystkie po stronie docelowej. Nie będzie szybciej. Po prostu stracisz czas na ich spakowanie.
Joey
2
Właściwie to działa w mojej sytuacji, ponieważ naprawdę chciałem wykonać kopię zapasową plików ... Nie obchodzi mnie rozpakowywanie. Spakowanie tysięcy plików na pewno działało ... spakowany plik był znacznie szybszy niż zwykłe kopiowanie. Ale tak, próbowałem rozpakować i zajmuje to trochę czasu. Dzieki za sugestie.
netrox
1
Nie ma problemu; Cieszę się, że pomogłem. :)
Kevin Yap
2
Działa to bardzo dobrze. Byłem w stanie uzyskać czas transferu 200 MB plików z 30 sekund przy użyciu zwykłej kopii do 2 sekund (bez kompresji, inny dysk). Powodem tego jest fakt, że tworzenie i zamykanie nowego pliku wiąże się z dużym nakładem pracy. W przypadku archiwum ma uchwyt pojedynczego pliku (archiwum), do którego dołączasz dane. Jeśli przenosisz się na inny dysk twardy, utwórz archiwum w miejscu docelowym, nie twórz go, a następnie przenieś.
Despertar,
Innym przypadkiem użycia, w którym może to znacznie przyspieszyć, jest przenoszenie do / z przenośnych dysków flash lub innych wolniejszych nośników i interfejsów. Pakowanie / rozpakowywanie tysięcy małych plików na dysku SSD za pomocą połączenia SATA III jest znacznie szybsze niż przesyłanie tysięcy plików do / z przenośnego napędu flash na USB. Oczyszczanie jest również znacznie prostsze, ponieważ usunięcie pojedynczego pliku zip z napędu USB zajmuje mniej niż sekundę, a kilka minut, aby usunąć folder zawierający tysiące małych plików.
positlux
6

Rozwiązaniem jest archiwizacja za pomocą WinRAR, ale gdy zostaniesz zapytany o sposób archiwizacji, wybierz store. Oznacza to, że nie będzie kompresji. Tak więc za około minutę skończysz z jednym dużym plikiem do skopiowania, który skopiuje się bardzo szybko.

Próbowałem skopiować 19890 małych plików (około 5 KB każdy) i Windows powiedział mi, że zajmie to 3 godziny, TeraCopy powiedział 3,2 godziny, ale przy użyciu mojej metody zajęło to tylko 1,5 minuty.

Jon Apostol
źródło
0

Możliwe, że część tego, co spowalnia cię w przypadku wielu małych plików, jest wtedy, gdy nie znajdują się one w tym samym fizycznym obszarze dysku. Na dysku, który nie jest bardzo pofragmentowany, pojedynczy duży plik będzie w większości odczytywany z jednego miejsca, ale jeśli będziesz musiał odczytać kilka osobnych plików, mogą one być rozproszone po całym dysku.

ZIPowanie było dla mnie pierwszym pomysłem, ale jak wspomniano powyżej, i tak straciłbyś czas na ten proces. Zauważyłem, że ogólnie kopiowanie przy pomocy RoboCopy.exe przebiega szybciej niż przez GUI. Możesz się z tym pobawić i przekonać, jak to działa.

nhinkle
źródło
1
Będziesz tracić najwięcej czasu z powodu częstego przełączania między zawartością pliku a wpisami MFT. Nie ma znaczenia, gdzie poszczególne pliki znajdują się na dysku.
Joey
0

Być może warto spróbować szybkiej defragmentacji przed skompresowaniem czegokolwiek, ale dzieje się tak tylko wtedy, gdy bardzo często przenosisz wiele małych plików. Jeśli nie, to sugeruję po prostu skompresowanie go (za pomocą 7zip lub coś - co często kompresuje się lepiej niż tylko standardowa kompresja Windows), a następnie skopiowanie.

I zależy to również od dysków twardych. Czy jest to zewnętrzny dysk twardy USB lub 2, które są w tym samym systemie? Jeśli jest to stary zewnętrzny dysk twardy, może on używać USB 1.0 lub lepiej jest mieć taki z zasilaczem.

lavamunky
źródło
0

ZIP ma limit 4 GB (lub coś w tym stylu) - zwykle używam archiwizatora RAR (nie ma tego limitu rozmiaru pliku) i określam, że w ogóle nie będzie kompresowany - w ten sposób archiwizacja do jednego pliku odbywa się bardzo szybko, i następnie po prostu kopiuję ten duży plik.

Andrey
źródło
-1

Jeśli jest to system uniksowy, możesz użyć tar przez ssh.
-Następujące polecenie kompresuje wszystkie pliki i foldery.

tar -cf - / home | ssh [email protected] tar -xvf - -C /

- Prześlij go i rozpakuj na drugim komputerze.
Jest to o wiele szybsze niż kopiowanie tylko na scp

Najpierw przeczytaj stronę podręcznika i bądź ostrożny

użytkownik466567
źródło
1
Pytanie zawiera znacznik „windows”, więc twoja odpowiedź nie ma zastosowania.
Nasreddine,
2
w rzeczy samej. następnym razem przeczytaj tagi, co?
td512,
Nie wspominając o tym, przeczytaj wiek pytania
qasdfdsaq