我正在为我的组织在c#中创建一个备份软件。 我有时间将我的工作站备份到服务器上的共享文件夹。 如果我直接将文件压缩到共享文件夹,并将临时文件直接创建到共享文件夹,则压缩时间为3分钟,但如果我在工作站上设置临时目录,则压缩时间为2分钟。
我使用其他备份程序测试此作业,并且直接创建到共享文件夹的临时文件的备份过程为2分钟。
dotnetzip有什么问题?
答案 0 :(得分:1)
在没有看到任何代码的情况下,我会想到它正在尝试将输出二进制文件流式传输到服务器备份位置。 结果是每个写入的字节都需要由客户端/服务器关系确认。
当您将其写入本地系统时,然后将其移动到服务器位置,您正在执行单个传输,而不是对流所写文件的每个段进行单独的读/写操作。
它类似于Sata Drives上连续文件操作的速度。 如果粘贴或复制3GB文件,您可以获得非常高的速度。 如果粘贴每个1kb的3000个文件,你的写入速度实际上并不会那么快,因为它被视为3000次操作而不是单次操作可以全速运行。
您知道其他备份程序在移动之前是否在本地保存备份吗? 我想他们会构造一个临时文件,然后移动到服务器端。