|
1
7
如果您对创建符号链接或硬链接而不是 真实的 复制以下Windows API可能会有所帮助。 |
|
|
2
5
你可以尝试使用你已经掌握的硬件,并在内存中分配一个大的缓冲区。通过大量阅读和写作,你或许可以减少一些开销。 然而,没有太多开销需要消除,瓶颈仍然是磁盘I/O。我最多只能期望执行时间减少5%。 |
|
|
3
4
文件抄送打电话给 CreateFile 在内核32中。dll。如果你正在复制大量的小文件(想想数百万),那么做P/Invoke来处理参数和跳过权限要求可能是值得的。一个大文件99.999%的2分钟都花在了驱动程序代码中。 |
|
|
4
2
我假设windows复制,文件。copy、Copyfile都使用相同的底层操作系统调用来进行复制。我怀疑你写的任何东西都会胜过操作系统内部调用。 |
|
|
5
2
我还没试过,但可能很快。 执行两个内存映射,一个映射到输入文件,一个映射到输出,并将内存从一个映射到另一个。操作系统执行的页面映射被调整为尽可能高的性能,因为它会影响整个系统的速度。 |
|
|
6
1
对于同一驱动器中的单个文件,您的问题的答案是: 不 . 对于网络传输、移动大量文件和其他更复杂的场景,可能还有改进的余地。 如果您当前的要求是将GBs复制到同一磁盘上的第二个物理(非符号)位置,那么提高性能的最佳机会可能是更快的磁盘。 |
|
|
7
0
我认为你应该首先检查一下你的磁盘有多少碎片。如果你的文件有很多块,而你没有足够的连续可用空间来存放第二块,那么磁盘必须经常移动磁头,这是非常缓慢的。 也许你的磁盘很简单,又旧又慢,你可以达到它的最高性能。在这种情况下,解决方案很简单,您需要购买新的或更好的两个,然后创建RAID 0。 您还可以检查在复制过程中,其他磁盘是否未使用相同的磁盘,例如防病毒或索引服务。 我没有提出任何软件解决方案,因为我认为没有什么比操作系统提供的功能更快的了。 |
|
|
8
0
如果文件在缓存中,这一切都取决于操作系统在复制时决定的分配(以同样的方式执行5x以避免它)。 最明显的结果是,如果你重复测试多次。 |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |