|
|
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Что-то слабо гуглится. Все, что нагулилось - в разбросе от 80 КБ до 2 МБ. Кто-нибудь уже решал подобный вопрос? Что выбрать, если времени на тестирование нет? Или на что надо посмотреть перед копированием? И еще. Подумал, что надо бы создать пару-тройку потоков, чтобы стояли в очереди с уже прочитанными данными и ждали, пока первый поток не запишет свои. Разумно? Речь идет о копировании файлов по 50 - 300 МБ количеством от 10 до 100. Цель - максимальная скорость. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 20:32 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Поток сознания какой-то. Ты подумал так и так, сделал выводы, выжимки из них привел, ... а мы тут при чем? Пытаюсь ванговать: писать лучше последовательно, т.к. канал один и распараллеливание будет тормозом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 20:43 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Dima T Поток сознания какой-то . Ты подумал так и так, сделал выводы, выжимки из них привел, ... а мы тут при чем? Пытаюсь ванговать: писать лучше последовательно, т.к. канал один и распараллеливание будет тормозом. Ну может быть. Выходные все-таки. Основной вопрос по размеру блоков. Какими блоками лучше копировать? По потокам: понятно, что писать надо одним потоком. Я подумал, не попытаться ли сделать упреждающее чтение с помощью потоков. Наверное, его можно и по-другому сделать. Зачем это делать: если блоки будут достаточно большими и делать все последовательно, то сразу после записи очередного блока будет возникать потеря времени на чтение следующего блока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 21:48 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Наверное, можно весь файл в оперативку загружать оттуда уже записывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 21:52 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-homeЧто-то слабо гуглится. Все, что нагулилось - в разбросе от 80 КБ до 2 МБ. Кто-нибудь уже решал подобный вопрос? Что выбрать, если времени на тестирование нет? Или на что надо посмотреть перед копированием? И еще. Подумал, что надо бы создать пару-тройку потоков, чтобы стояли в очереди с уже прочитанными данными и ждали, пока первый поток не запишет свои. Разумно? Речь идет о копировании файлов по 50 - 300 МБ количеством от 10 до 100. Цель - максимальная скорость. Технологии меняются. И то что мы знали о флешках лет 10 назад сегодня может быть уже не совсем актуально. По теме несколько мыслей. 1) Посмотри как ты ее форматируешь. extFS? NTFS? Можно попробовать варианты. Для россыпи мелких файлов - можно попробовать сархивировать 7zip-ом без сжатия и просто указать destination а флешку. Или TAR-ом. 2) Посмотри https://en.wikipedia.org/wiki/Flash_file_system может какие-то мысли будут. 3) Посмотри как ты ее включаешь? USB2.0 и USB3.0 это разные стандарты скоростей. Для тройки слот покрашен в синий. 4) Посмотри ... в магазинах комп-техники обычно пишут класс памяти. Ну.. для SD точно пишут. Обычно этот класс и определяет предельную скорость. Если ты уперся в него то уже никакие многопоточки не помогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2019, 22:12 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
maytonFlying-homeЧто-то слабо гуглится. Все, что нагулилось - в разбросе от 80 КБ до 2 МБ. Кто-нибудь уже решал подобный вопрос? Что выбрать, если времени на тестирование нет? Или на что надо посмотреть перед копированием? И еще. Подумал, что надо бы создать пару-тройку потоков, чтобы стояли в очереди с уже прочитанными данными и ждали, пока первый поток не запишет свои. Разумно? Речь идет о копировании файлов по 50 - 300 МБ количеством от 10 до 100. Цель - максимальная скорость. Технологии меняются. И то что мы знали о флешках лет 10 назад сегодня может быть уже не совсем актуально. По теме несколько мыслей. 1) Посмотри как ты ее форматируешь. extFS? NTFS? Можно попробовать варианты. Для россыпи мелких файлов - можно попробовать сархивировать 7zip-ом без сжатия и просто указать destination а флешку. Или TAR-ом. 2) Посмотри https://en.wikipedia.org/wiki/Flash_file_system может какие-то мысли будут. 3) Посмотри как ты ее включаешь? USB2.0 и USB3.0 это разные стандарты скоростей. Для тройки слот покрашен в синий. 4) Посмотри ... в магазинах комп-техники обычно пишут класс памяти. Ну.. для SD точно пишут. Обычно этот класс и определяет предельную скорость. Если ты уперся в него то уже никакие многопоточки не помогу. Не, нужно решение под "просто какую-то флэшку". То есть, сделать программную оптимизацию под неизвестно что. Неизвестно, что будет за комп, будет ли у него USB 3.0, неизвестно, что будет за ось, неизвестно, что будет за флэшка. Все, на чем можно сыграть - то, с чего я начал топик. Размер блока и упреждающее чтение. А комп может оказаться и хрюшей с 512 МБ, и десятка с 16 ГБ оперативки. В первом приближении это давно реализовано в Тотал коммандере. У него в настройках есть варианты копирования "по хорошему" и "как в проводнике". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 05:33 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Ну за 10 экспериментов с разным размером блока ты можешь найти оптимальный. А мы тебе чем тут поможем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 10:56 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
maytonНу за 10 экспериментов с разным размером блока ты можешь найти оптимальный. А мы тебе чем тут поможем? А зачем форумы вообще нужны? Любому вопрошающему можно сказать, что потрудившись и почитав справку он сам найдет нужное решение. Может, кто-то уже решал подобную задачу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 13:22 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-homemaytonНу за 10 экспериментов с разным размером блока ты можешь найти оптимальный. А мы тебе чем тут поможем? А зачем форумы вообще нужны? Любому вопрошающему можно сказать, что потрудившись и почитав справку он сам найдет нужное решение. Может, кто-то уже решал подобную задачу? Покажи свой сорц. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 13:24 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
maytonНу за 10 экспериментов с разным размером блока ты можешь найти оптимальный.Даже если этот оптимум существует (в чем я сомневаюсь), то это будет оптимум конкретной модели флешки. Для другой модели/ревизии/firmware он может быть другим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 13:57 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
есть и другие критерии - физический размер блока на чипе памяти например (которые между делом имеют ограниченное число циклов записи, поэтому переписывать блоки которуе не обязательно переписывать - черевато преждевременным износом) размер блока смотреть надо кратный размеру блока чипа (через целый множитель), хотя здесь стандарт - так что не промазать на современных чипах flash памяти размер блока начинается от 512Кб+ (смотришь сколько страниц на чипе, делишь объём) дальше нюансы, к примеру по файлам - если файлы по 2кб - то писать их (если каждый отдельно, последовательно, потом переход к следующему, а не группой) блоками по 64Кб может быть дороговато. с другой стороны - ставь USB 3.2 (ту которая 2x2 , т.е. 2.5 GB/sec) или 3.1 (1.25 GB/sec) и забудь об этих мелочах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 14:16 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
С точки зрения бизнеса. Как звучит постановка. Если надо просто скопировать файл - то это фигня. Потому что финал этой операции находится не здесь. А после отмонтирования флешки. Тоесть мне как конечному пользователю системы неинтересно быстро или медленно копирует процесс. Мне интересно чтобы я смог быстро нажать мышкой Unmount. И сброс буферов произошёл-бы максимально быстро. Тоесть мы имеем дело со сложным стеком технологий Операционка+софт+драйвер флешки и просто так угадать какой нужен размер блока практически невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 14:41 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-homeЗачем это делать: если блоки будут достаточно большими и делать все последовательно, то сразу после записи очередного блока будет возникать потеря времени на чтение следующего блока. Так это не зависит от размера блока. Используй overlapped I/O или читай и пиши разными потоками. Двух буферов по мегабайту хватит наверняка. Ну и экстремальные виды оптимизации типа FILE_FLAG_NO_BUFFERING (O_DIRECT) не забудь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2019, 15:09 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Спасибо всем. Я маленькие файлы пока не рассматриваю. Размер - от 50 МБ. Соответственно, и буферы рассматриваю большие (кратные 4КБ). При копировании с одного сата-диска на другой по моей (пока недостаточной) статистике оптимальным представляется буфер 40 или 80 МБ. Может, и больше. Думаю вот, насколько такие буферы применимы к флэшкам? Если у нее свободное пространство фрагментировано, что будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 22:10 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovFlying-homeЗачем это делать: если блоки будут достаточно большими и делать все последовательно, то сразу после записи очередного блока будет возникать потеря времени на чтение следующего блока. Так это не зависит от размера блока. Используй overlapped I/O или читай и пиши разными потоками. Двух буферов по мегабайту хватит наверняка. Ну и экстремальные виды оптимизации типа FILE_FLAG_NO_BUFFERING (O_DIRECT) не забудь. Я пока думаю о двух потоках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 22:12 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Ну... сорцов мы не дождались. Так ште... good luck. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2019, 22:13 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Если речь о простом копировании файлов в виндовсе, то есть штатные средства CopyFile() и CopyFileEx() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 07:22 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-homeПри копировании с одного сата-диска на другой по моей (пока недостаточной) статистике оптимальным представляется буфер 40 или 80 МБ. Совершенно избыточны такие буфера. Скорость копирования перестаёт расти уже на 64 кб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 15:05 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
maytonНу... сорцов мы не дождались. Так ште... good luck. Дык, их еще просто нет. Я обычно сперва вопросы задаю, а потом уже что-то пишу. ЗЫ А зачем тебе сорцы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 20:02 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-homemaytonНу... сорцов мы не дождались. Так ште... good luck. Дык, их еще просто нет. Я обычно сперва вопросы задаю, а потом уже что-то пишу. ЗЫ А зачем тебе сорцы? В этом форуме обычно обсуждают предмет программирвоания. А он как ни странно связан с сорцами. Тем более что в вашем случае мы имеем дело даже не с алгоритмом которого здесь нет. А с кодингом под Windows. Читайте Джефа Рихтера. У него был пример быстрого копирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 20:19 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovFlying-homeПри копировании с одного сата-диска на другой по моей (пока недостаточной) статистике оптимальным представляется буфер 40 или 80 МБ. Совершенно избыточны такие буфера. Скорость копирования перестаёт расти уже на 64 кб. У меня на 40 МБ перестала расти. Может, у меня какой-то не общий случай, может с размерами файлов какая-то коллизия произошла, надо будет еще посмотреть. С одной стороны, чем больше буфер, тем больше можно выиграть на "бесшовном" копировании группы файлов, с другой - в задаче файлы от 50 МБ, и если их два, то смысла в бОльших буферах действительно нет. Кстати, можно еще выиграть время на начальном чтении. Начинать копировать маленькими буферами и постепенно увеличивать размер до рабочего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 20:20 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
maytonFlying-homeпропущено... Дык, их еще просто нет. Я обычно сперва вопросы задаю, а потом уже что-то пишу. ЗЫ А зачем тебе сорцы? В этом форуме обычно обсуждают предмет программирвоания. А он как ни странно связан с сорцами. Тем более что в вашем случае мы имеем дело даже не с алгоритмом которого здесь нет. А с кодингом под Windows. Читайте Джефа Рихтера. У него был пример быстрого копирования. Ну, я сейчас обдумываю именно алгоритм. Потому и зашел в общий топик. Если бы были вопросы по Дельфе, пошел бы туда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 20:24 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-homemaytonпропущено... В этом форуме обычно обсуждают предмет программирвоания. А он как ни странно связан с сорцами. Тем более что в вашем случае мы имеем дело даже не с алгоритмом которого здесь нет. А с кодингом под Windows. Читайте Джефа Рихтера. У него был пример быстрого копирования. Ну, я сейчас обдумываю именно алгоритм. Потому и зашел в общий топик. Если бы были вопросы по Дельфе, пошел бы туда. И какой у вас сейчас алгоритм? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2019, 20:25 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Во стыдоба... Перепутал все, что можно было перепутать. Большее с меньшим, размеры буфера... Праздники удались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 00:54 |
|
||
|
Оптимальный размер блока при записи файла на флэшку
|
|||
|---|---|---|---|
|
#18+
Flying-home, наверное надо прыгать от самой распространённой FS на флэш-накопителях: Fat32 викиРазмер кластера по умолчанию для файловой системы FAT32 составляет от 512 байт до 32 КБ в зависимости от размера тома и конкретной версии ОС[2].При использовании размера кластера, равного 32768 байт, максимальный размер тома составит чуть менее 8 ТБ[3]. Хотя размер сектора может быть любым, традиционно он считается равным 1 сектору диска и равен 512 байт и т.к. эта величина не менялась с момента создания — она может считаться некоторым ПО как константа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2019, 12:39 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=39756414&tid=1492230]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
220ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 324ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...