2016-02-18 2 views
0

Я создаю резервное копирование программного обеспечения в C# для своих организаций. У меня есть проблема со временем, чтобы сделать резервную копию моей рабочей станции в общей папке на сервере. Если я напрямую сжимаю файлы в общую папку с временным файлом, созданным непосредственно в общей папке, время сжатия составляет 3 минуты, но если я установил временный каталог на рабочей станции, время сжатия составляет 2 минуты..NET - DotNetZip Резервное копирование по сети медленное

Я тестирую это задание с другой программой резервного копирования, а процесс резервного копирования с временным файлом, созданным непосредственно в общей папке, составляет 2 минуты.

Что не так с dotnetzip?

ответ

1

Не видя никакого кода, я бы предположил, что он пытается передать выходной двоичный файл в место резервного копирования сервера. Результатом этого является то, что каждый байт, который пишет, нуждается в подтверждении отношения клиент/сервер.

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

Его вид аналогичен тому, как непрерывные операции с файлами выполняются быстрее на дисках Sata. Если вы вставляете или копируете файл 3 ГБ, вы можете достичь действительно высоких скоростей. Если вы вставляете 3000 файлов по 1kb каждый, ваша скорость записи на самом деле не будет такой быстрой, потому что ее обрабатывают как 3000 операций по сравнению с одной операцией, которая может идти на полной скорости.

Знаете ли вы, что другие резервные программы сохраняют резервную копию локально до перемещения? Я бы предположил, что они создают временный файл, который затем перемещается на сервер.

+0

Извините, что может плохой английский У меня было такое же представление о посылке в сегменты файлов. Другое программное обеспечение, выполняющее прямую передачу без сохранения файла локально –

Смежные вопросы