Сколько по времени примерно должно занимать копирование 250мб видео, у

меня получилось 0.21 секунд (переименование файла те запись туда обратно и так далее), мне кажется плохо так как винда это делает моментально, вообще винда переименовывает моментально файл любого размера, видимо там какой-то другой способ используется

вот мой страшненький код(но я старался), возможно сможете найти способ немного ускорить(хотя я хз как конкретно мой способ можно быстрее сделать)
https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=1fbbd0472b3507ddab799f339bc56f27

знаю про std::fs::rename но я хотел свое написать just practice и как я понимаю там под капотом тоже копирование байтов используется(иначе нет идей как это еще можно реализовать, только через метаданные файла в голову приходит) (исходный код std::fs::rename не нашел, только через go to definition смог добраться до
этого кода
pub fn rename<P: AsRef<Path>, Q: AsRef<Path>>(from: P, to: Q) -> io::Result<()> {
fs_imp::rename(from.as_ref(), to.as_ref())
})

11 ответов

9 просмотров

Переименовывание файла не влияет на файл. Запись идёт только в метаданные файловой системы. Поэтому оно работает "мгновенно"

Twin-Terrors Автор вопроса
Пашечка
Переименовывание файла не влияет на файл. Запись и...

Ну как я и предположил в конце про метаданные. Блин... И зачем я это писал...

Twin Terrors
Ну как я и предположил в конце про метаданные. Бли...

Затестите ваш код для перемещения файлов на другой логический диск. Вот там даже винда под капотом делает копирование и удаление оригинала (ибо источник и цель разные ФС). Вот тут уже можно сравнивать производительность.

Вообще, судя по коду, оно должно быть медленнее. Ведь там чтение в буфер + запись. Логичнее сделать чтение куска байт, в потом стартануть два потока: запись этого куска байт и чтение нового куска байт. Ещё лучше асинхронно и многопоточным шедулером. Плюс в в шей текущей реализации проблема, если файл не поместится в буфер. Но вообще, я хз как оно достоверно работает под капотом системы, так что может у такого подхода и есть вероятность профита.

Twin-Terrors Автор вопроса
Пашечка
Вообще, судя по коду, оно должно быть медленнее. В...

У меня есть некоторые трудности с асинком в расте, я пока его отложил в далёкий ящик и не хочу вспоминать

Пашечка
Ну, первым я предложил двухпоточку ;)

Тем более, как я понимаю, это код для набивания руки - поэтому попробовать точно стоит.

Twin-Terrors Автор вопроса
Пашечка
Ну, первым я предложил двухпоточку ;)

Если брать байт из одного файла и сразу ложить его в другой, это будет медленнее чем сначала прочитать полностью, а потом записать полностью?

Twin Terrors
Если брать байт из одного файла и сразу ложить его...

И не по одному байту, а по много байт. Например по одному мегабайту можно попробовать начать читать. Но не "сразу всё"

Twin-Terrors Автор вопроса
Пашечка
И не по одному байту, а по много байт. Например по...

Можно статью где можно посмотреть как это делается

для начала наверно избавиться от аллокаций лишних, а именно ты создаешь вектор и читаешь туда весь файл читай пачку байт и сразу пиши ее в новый файл и так пока не дойдешь до конца а первом файле

Похожие вопросы

Обсуждают сегодня

Всем привет, может уже кто-то пытался выдернуть из api информацию о дате рождения пользователя Есть ли вообще такая возможность?
Artem Stormageddon
2
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Подскажите где можно прочитать про реализацию возможности писать человеку при подписке на телеграм канал от имени бота? Было бы не плохо если для Telegraf@3.38.0
Pan Lipton
10
Ребята, я за проф советом😅 По микросервисам. В монолите есть общие файлы для сервисов: фетчи, конфиги, либы, утилсы.. как при распиле правильно их поддерживать? Пока вариант д...
Александр Тарасюк
1
Мне вот что интересно, кто на рфе стартовал/играл, что вы фармили, в каком виде контента он прямо хорош? Экспедиция? Вроде прямо на замазанных мапах рф сдувается
Владислав
20
всем привет. я правильно понимаю, что в телеграфе 4, если сессию указать у сообщения с коллбеком (кликнул на кнопку и установил сессию), то она не сохраняется?
Тимур
1
‌/r/pathofexile moderation changes top scoring links : pathofexile (RSS) Hi, everyone. On behalf of the subreddit mod team, I’m here to give you a few updates on the subreddi...
Esionru
3
У вас бывает ощущение, что хочется потратить весь отпуск на то, чтоб только спать?
Николай
15
У меня вопрос к знающими, стоит ли вступать в гильдии в игре или лучше полная свобода?
Енот Полоскун
17
Кто нибудь поясните это всё таки вброс или да? Про санктум слышал на поедб вбросили, а по дурке откуда инфа и на сколько это вообще правда? Пахнет шизофренией какой-то ✅Divi...
Dmitry Ritter
9
Карта сайта