Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Вниз

Как быстро скопировать 500 маленьких файлов   Найти похожие ветки 

 
lessard   (2006-09-06 10:46) [0]

Есть 500-600 файлов по 5-6 Кбайт каждый. Как ОЧЕНЬ БЫСТРО скопировать эти файлы в другое место? PS: Место - в сети.... и занимает эта процедура 5-10 сек., надо меньше...


 
Skyle ©   (2006-09-06 10:52) [1]

А сколько времени занимает их заархивировать?


 
lessard   (2006-09-06 10:59) [2]

это надо делать программно + постоянно (раз в две-три минуты). к сожалению, в БД уже слишком много данных, чтобы менять структуру и вводить другую методику сихронизации - этим я занимаюсь в новой версии. а пока - только так...


 
evvcom ©   (2006-09-06 11:06) [3]

> [2] lessard   (06.09.06 10:59)

А в чем проблемы с программной архивацией?


 
lessard   (2006-09-06 11:09) [4]

2evvcom
предложения методики? стандартным средствам, простите, не обучен - rar архивировать зараза не хочет, zip-компонентами пользоваться я не умею. Ещё варианты?


 
Skyle ©   (2006-09-06 11:10) [5]


> 4] lessard   (06.09.06 11:09)
> 2evvcom
> предложения методики? стандартным средствам, простите, не
> обучен - rar архивировать зараза не хочет, zip-компонентами
> пользоваться я не умею. Ещё варианты?


что значит "не хочет"?


 
PSPF2003 ©   (2006-09-06 11:12) [6]


> что значит "не хочет"?

Производная от не умею


 
lessard   (2006-09-06 11:13) [7]

Удалено модератором


 
evvcom ©   (2006-09-06 11:13) [8]

> [4] lessard   (06.09.06 11:09)


> простите, не обучен


 
evvcom ©   (2006-09-06 11:14) [9]

> [8] evvcom ©   (06.09.06 11:13)

> Ещё варианты?

Обучиться.


 
Плохиш ©   (2006-09-06 11:14) [10]


> и занимает эта процедура 5-10 сек., надо меньше

А что винчестеры уже мгновенно данные находят и отдают?
> lessard   (06.09.06 11:09) [4]
> стандартным средствам, простите, не обучен

Ты забыл добавить, что сами вы не местные.

> rar архивировать зараза не хочет

Что, так и говорит "не хочу"?

PS. И для кого же конференцию "Начинающим" создали?


 
lessard   (2006-09-06 11:14) [11]

Удалено модератором


 
PSPF2003 ©   (2006-09-06 11:18) [12]

Удалено модератором


 
Плохиш ©   (2006-09-06 11:19) [13]


> lessard   (06.09.06 11:14) [11]

Задавай вопрос в правильной конференции и тогда к тебе будут относиться по правилу "Просьба к участникам быть взаимовежливыми, профессионалам отдельная просьба - быть снисходительными."


 
evvcom ©   (2006-09-06 11:23) [14]

> [7] lessard   (06.09.06 11:13)

А... Вот почему не хочет! Так тебе ж по-русски пишет рар "Зарегистрируйтесь!" Или ты думаешь тебе сейчас здесь начнут объяснять, как надо рар сломать?


 
Skyle ©   (2006-09-06 11:26) [15]

Опиши задачу.
Теперь получается, что нужно тянуть с сетевого диска, а не толкать в сеть, а это принципиально другое.


 
Elen ©   (2006-09-06 11:28) [16]


> lessard

BlockRead,BlockWrite вроде самые быстрые. Но это еще от сети зависит


 
StriderMan ©   (2006-09-06 11:36) [17]


> Elen ©   (06.09.06 11:28) [16]
> BlockRead,BlockWrite вроде самые быстрые. Но это еще от
> сети зависит

CopyFile самый быстрый. Быстрее ось не умеет по определению.

Разве что на низком уровне с винта читать, но эта задача ох как нетривиальна, тем более под виндами.


 
lessard   (2006-09-06 11:40) [18]

Всем:

Задача: readfrom LAN -> writeto LOCAL -> обработка/изменение/ -> writeto LAN -> readfrom LAN ...и так далее.

Blockread/blockwrite не превнесли особого ускорения. разница в 0,1283 секунды по сравнению с просто copyfile. Тут непонятно - 1,55 гб файл скопировался за 16 секунд...


 
Skyle ©   (2006-09-06 11:49) [19]


> Blockread/blockwrite не превнесли особого ускорения


А какой размер блока?


 
lessard   (2006-09-06 11:53) [20]

10, 20 и 50 кбайт в зависимости от формата файла


 
Skyle ©   (2006-09-06 12:10) [21]

А я бы попробовал по 4 кб или кратно.

сколько времени занимает скопировать это локально?


 
lessard   (2006-09-06 12:13) [22]

локально - 10-12 секунд, если пользоваться виндовыми методами
а я и говорю что кратно файлы там есть сйечас от 4 до 200 кбайт, так большие быстрее копируются...


 
StriderMan ©   (2006-09-06 12:16) [23]


> Задача: readfrom LAN -> writeto LOCAL -> обработка/изменение/
> -> writeto LAN -> readfrom LAN ...и так далее.

мне кажется тут так и напрашивается поместить твою прогу на ту машину где файлики лежат.


 
DiamondShark ©   (2006-09-06 12:16) [24]


> так большие быстрее копируются...

не быстрее.
у них просто отношение (накладные расходы)/(копирование тела) меньше.
Что естественно, т.к. для открытия сетевого файла надо надо довольно много подёргаться.

Как вариант, можно написать сетевой сервис, который будет кучу мелких файлов одним потоком отдавать.
Сэкономится на служебных операциях с каталогом по сети.


 
Skyle ©   (2006-09-06 12:16) [25]

Логично, что большие копируются быстрее.
Теперь нужно либо распараллелить копирование, либо сделать из них один файл.. Других вариантов как-то нету.


 
dwar ©   (2006-09-06 12:16) [26]


> Есть 500-600 файлов по 5-6 Кбайт каждый

Примерно 3 гига информации 5-10 секунд помоему неплохой результат


 
Плохиш ©   (2006-09-06 12:18) [27]


> lessard   (06.09.06 12:13) [22]


> так большие быстрее копируются

Ну об этом в любой книжке по компьютерам в разделе о работе дисков написано. Головкам не нужно постоянно искать на всём диске требуемое место, да ещё на таблицу раделов/файлов скакать.


 
lessard   (2006-09-06 12:19) [28]

StriderMan, клиент-бд стоит у 50 человек в зале. не катит. в новой версии сделаю TCP-обмен. думаю будет лучше.

Skyle, распаралелить в смысле? А сделать файл... была такая идея, даже пробовал ZLib, да не сложилась. Есть ещё варинты?


 
dwar ©   (2006-09-06 12:20) [29]


> Теперь нужно либо распараллелить копирование, либо сделать
> из них один файл..

не думаю что слив в один файл а потом разбор его на 600 мелких +сохранение  займет менше времени, та же лошадь только в порфиль


 
DiamondShark ©   (2006-09-06 12:22) [30]


> Головкам не нужно

Это не в ту степь.
Самый тормозной винт на порядки быстрее самой быстрой сети.


 
Skyle ©   (2006-09-06 12:26) [31]

Качественный скачок даст качественно иное решение ;-)
1. как уже сказали, исключить из процесса сеть
2. разнести копирование и обработку по времени (пусть копируется и обрабатывается не пачкой, а непрерывно)
3. купить EVA-3000 и FiberChannel и поиметь гигабит и общий диск :)


 
lessard   (2006-09-06 12:28) [32]

DiamondShark, угу.

Стоит ли рассматривать как вариант TCP-транспорт такого типа:

>connect 192.168.0.1 3928
+OK Login, please
>user root
+OK Enter password
>pass password
+OK Logged in, welcome

и потом:

>query dblist.dxf id 1
+OK Transferring started...
sdQ3H50E9HDSKJ3LJBRTELRFB23[RIJEWOFZKLERGBN <-- типа ReadStream

>write dblist.dxf id 1
+OK Enter data for write...
sdjkhljkw345whlferptf23jkr5hlfzelfgdgjdflg23rlsjrdljfkd
+OK Save success

>exit
+OK Bye


 
lessard   (2006-09-06 12:29) [33]

В смысле, будет ли это быстрее?


 
lessard   (2006-09-06 12:30) [34]

Skyle, сеть не получится. Как я тебе буду обрабатывать запросы от кучи пользователей?


 
Skyle ©   (2006-09-06 12:36) [35]

Тогда ещё вариант:
ставишь везде NTFS, на той машине, с которой данные надо забирать всё собираешь в один многопоточный файл, потом этот файл копируешь, на своей машине читаешь прямо из потоков, также копируешь обратно, разбираешь :)


 
Skyle ©   (2006-09-06 12:37) [36]


> [34] lessard   (06.09.06 12:30)
> Skyle, сеть не получится. Как я тебе буду обрабатывать запросы
> от кучи пользователей?


А эту обработку на машине пользователя сделать никак нельзя?
Для обработки тоже требуются данные такого же уровня срочности?


 
StriderMan ©   (2006-09-06 12:41) [37]


> DiamondShark ©   (06.09.06 12:22) [30]
> Самый тормозной винт на порядки быстрее самой быстрой сети.

вот это сомнительно

гигабитный LAN прокачивает за секунду 128 мегабайт. далеко не всякий винт на такое способен.


 
lessard   (2006-09-06 12:43) [38]

Skyle, не в том дело
файлы физически должны лежать в одном месте, а то получится, что один предприятие изменил, сохранить не успел, а другой изменил и сохранил...


 
Skyle ©   (2006-09-06 12:46) [39]


> Как ОЧЕНЬ БЫСТРО скопировать эти файлы в другое место


> файлы физически должны лежать в одном месте


Как-то не коррелируется :(


 
Плохиш ©   (2006-09-06 12:48) [40]


> DiamondShark ©   (06.09.06 12:22) [30]
>
> > Головкам не нужно
>
> Это не в ту степь.

В [21] и [22] про сети ничего не говориться, а уточняется как раз другое. Так что сами Вы степью ошиблись.



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2006.10.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.051 c
2-1159359021
pathfinder
2006-09-27 16:10
2006.10.15
Вопрос по работе с файлами.


2-1159245101
Dima K
2006-09-26 08:31
2006.10.15
CheckBox в ячейке DBGrid


3-1155643210
Itoixxx
2006-08-15 16:00
2006.10.15
If в select


2-1159195466
vyper
2006-09-25 18:44
2006.10.15
Как убить процесс


1-1157564587
Calibr
2006-09-06 21:43
2006.10.15
Как программно записать ipConfig в файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский