Kopiowanie przez RAM

0 głosów
wizyt: 2,579

Witam

Ostatnio szukałem sposobu na  przyspieszenie kopiowania plików z partycji na partycję w obrębie jednego dysku. Domyślne kopiowanie w Windows wykorzystuje jedynie bufor dysku jako "schowek" na dane. Są programy umożliwiające wykorzystanie pamięci RAM jako bufora, dzięki czemu kopiowanie jest nieco szybsze, bo głowica nie przeskakuje tak często. Jednak gdy kopiuje się wiele małych plików, gdzie każdy jest przerzucany osobno, bufor większy niż rozmiar pliku pozostaje niewykorzystany i głowica i tak skacze po skopiowaniu każdego, najmniejszego nawet pliku.

 

Zastanawiam się, czy istnieje jakiś program, który potrafiłby wykorzystać więcej pamięci przy operacji kopiowania nawet małych plików. Przykładowo odczytać z dysku 500 MB danych, wrzucić je do pamięci i dopiero po zapełnieniu tej pamięci zacząć zapis z pamięci na dysk. I tak w kółko do momentu przekopiowania wszystkiego. Wtedy na każde 500 MB danych głowica przeskakiwałaby tylko dwa razy, oczywiście zakładając, że fragmentacja dysku nie istnieje.

Sprawdziłem takie programy jak TeraCopy, gdzie można ustawiać bufor RAM, ale nie radzą sobie z małymi plikami i tak naprawdę niewielki przyrost prędkości widać tylko na dużych plikach.

25 maja 2010 w Dyski twarde przez użytkownika Skipperro Poziom 7 (19,430)
   

13 odpowiedzi

0 głosów
Nie wiem jak działa, ale czy sprawdzałeś FastCopy? Jest też
ExtremeCopy.
odpowiedź 25 maja 2010 przez użytkownika PJSPP Poziom 6 (9,730)
0 głosów
FastCopy sprawdzałem. Działa tak samo jak TeraCopy - dla plików mniejszych niż bufor dysku działa identycznie jak kopiowanie Windows. ExtremeCopy zaraz sprawdzę, ale z tego co czytam na stronie producenta, to nie zapowiada się rewelacja.
odpowiedź 25 maja 2010 przez użytkownika Skipperro Poziom 7 (19,430)
+1 głos
Cudze chwalicie, swego nie znacie.
http://www.copyhandler.com/pl/strona-glowna
odpowiedź 25 maja 2010 przez użytkownika Adam1968 Poziom 5 (3,320)
–1 głos
Nie za bardzo wiem jaki jest kontekst Twojego problemu tzn. czemu robisz taką replikację z partycji na partycję, ale może zastanawiałeś się na RAIDem 1 ?
W obrębie jednego dysku logicznego miałbyś replikację danych zapewnioną cały czas :)
odpowiedź 25 maja 2010 przez użytkownika hazek Poziom 5 (3,210)
0 głosów
Ja sie nie bawie nigdy systemowymi narzedziami do kopiowania plikow, od tego sa filemanagery. DLa WIndows polecam Total Commandera. Nie mierzylem, czy jest szybszy od exploratora, ale ma w odroznieniu od niego i jego wspanialem cechy wielozadaniowosci cos takiego, jak kolejkowanie zadan, dzieki czemu kopiowanie wielu plikow nie spowalnia drastycznie transferu :)
odpowiedź 25 maja 2010 przez użytkownika jeomax.co.uk Poziom 11 (475,040)
0 głosów
@hazek - Nie chodzi o coś w rodzaju RAID1, żeby zabezpieczyć dane. Chodzi o scenariusz podobny do tego:

Pracownik mojej firmy wraca z terenu gdzie np. robił zdjęcia i filmiki kilku nieruchomości, które planuję sprzedać. Jest tego 2 GB zdjęć i drugie tyle filmików zapisanych w jakimś słabo kompresowanym kodeku. Przenoszę to z aparatu na dysk i oddaję aparat z czystą kartą pracownikowi. Teraz muszę te zdjęcia obrobić, żeby miały ładniejsze kolory, odpowiednio obrócić i oczywiście odrzucić nieudane. A filmiki muszę przekonwertować do innego kodeka i również dopieścić.

I co robię, żeby przerabiać sobie pliki, a jednocześnie mieć ich oryginalne kopie, na wypadek gdybym coś pochrzanił? No kopiuję te gigabajty danych do katalogu "oryginały", którego nie edytuję, tylko jakby co z niego przywracam zdjęcie lub filmik w stanie po zrobieniu. Po wszystkim katalog ten usuwam, jeśli już wiem, że wszystko jest OK.

Nie chodzi po prostu o to, żeby dane były takie same w dwóch miejscach. Bo co mi po tym, skoro zmieniając plik na jednym dysku, automatycznie zmieni się na drugim i oryginalne zdjęcie szlag trafi?
odpowiedź 25 maja 2010 przez użytkownika Skipperro Poziom 7 (19,430)
0 głosów
Z małymi plikami nie jest łatwo bo taki program do kopiowania musiałby dokładnie przeanalizować metadane dużej części systemu plików (inaczej dla FAT, inaczej dla NTFS), żeby znaleźć, które pliki da się scalić przed kopiowaniem a które nie. Możesz próbować wrzucać te fotki w jakiś kontener i kopiować całość. W XP zip był dość przezroczystym dla użytkownika kontenerem, choć nie wiem ile dawał narzutu na próby kompresji.
odpowiedź 26 maja 2010 przez użytkownika Irrlicht Poziom 7 (14,720)
0 głosów
Robilem cos podobnego, tylko ze nie widze za bardzo, gdzie chcialbys przyspieszyc to kopiowanie. Wystarczy, ze kazdorazowo przy zgrywaniu bedziesz przenosil dane z karty na dysk, na ktorym bedziesz mial katalog ORYGINALY, a w nim podkatalogi z datami okrreslajacymi kolejne partie doniesionych zdjec (np. dzisiejszy zrzut bedzie w katalogu 2010-05-26). Przy takim przenoszeniu waskim gardlem jest predkosc odczytu z karty i obawiam sie, ze nic raczej nie pomoze. Jesli wpierw wrzucasz takie pliki byle gdzie, a potem dopiero kopiujesz w inne miejsce (po co ? nie za bardzo widze sens, natomiast przenoszenie na ta sama partycje jest w ulamku sekundy) - to omin ten krok i przenos od razu pliki w docelowe miejsce.
Potem nastepuje obrobka zdjec i obrazkow wczytywanych pojedynczo i zgrywanych w lokalizacje KOPIE rowniez pojedynczo. Tu nie da sie nic przyspieszyc (moze poza wybieraniem sensownych rozdzielczosci i wielkosci obrazkow i plikow + kompresja).
W takim przypadku moglbym jedynie RAIDa 0 zlozonego z 4 szybkich dyskow polecic na szybsza konwersje filmikow, o ile procesor jest w stanie obrabiac szybciej dane, niz wynosi streaming na dysk.
odpowiedź 26 maja 2010 przez użytkownika jeomax.co.uk Poziom 11 (475,040)
0 głosów
@Skiperro
Nie rozumiem po co tyle tych kopiowań. Dlaczego zdjęć z karty nie wrzucasz bezpośrednio do katalogu "Oryginały"?
Potem przecież będziesz pojedynczo obrabiał pliki i zapisywał je w katalogu docelowym, więc nie ma problemu z kopiowaniem.

Jeżeli oryginały kopiujesz gdzieś tylko po to żeby je "zdublować" i na nich pracować to polecam zastanowić się nad wykorzystaniem narzędzia w stylu ImDisk. Tworzy wirtualny dysk w pamięci, mógłbyś tam wrzucać wszystkie oryginały i pracować na plikach które masz w tym momencie w szybkiej pamięci operacyjnej.
odpowiedź 26 maja 2010 przez użytkownika bchrubas Poziom 5 (3,920)
+1 głos
Widzę, że nie czytasz odpowiedzi na własne pytanie
Copy Handler
można ustawić język polski, wielkość bufora podczas różnych wariantów kopiowania
obsługuje kolejkowanie zadań
odpowiedź 26 maja 2010 przez użytkownika Adam1968 Poziom 5 (3,320)
+1 głos
nie przyspieszy kopiowania przez sieć (Tera copy lepiej się sprawuje) ale w obrębie dysku jest bezkonkurencyjny
odpowiedź 26 maja 2010 przez użytkownika Adam1968 Poziom 5 (3,320)
0 głosów
OK, teraz kontekst jest całkowicie zrozumiały.
W takim razie możesz rozważyć Shadow Copy. To wbudowane narzędzie do wersjonowania plików.
odpowiedź 26 maja 2010 przez użytkownika hazek Poziom 5 (3,210)
0 głosów
Można spróbować zrobić "dysk" w pamięci ram i przenieść tam pliki a później gdzie tam chcesz dalej. Można to zrobić przez np Tweak-XP.
odpowiedź 11 czerwca 2010 przez użytkownika mttjrWKS Poziom 4 (1,670)
...