我设计了一个用于合并和拆分大文件(约4GB)的C#控制台应用程序,采用面向对象设计。它涉及读写xml、平面文件和图像。我有针对读取器和写入器的类。
合并需要大约00:12的时间,而拆分需要超过04:30小时的时间。然后我通过将输出文件分布到子目录中而不是使用单个目录来增强了拆分性能,使其达到了00:50。
我的老板要求我将所有内容转换为静态过程式编程,但不包括对象。他说合并需要00:12,而拆分需要00:50不平衡。他希望通过转换为静态方法在00:30内完成拆分。
现在我知道根据这里的说明,静态调用更快。但是我不同意所有静态方法都会更好,因为我将不得不在方法中使用“ref”和“out”参数。
我的问题是:
合并需要大约00:12的时间,而拆分需要超过04:30小时的时间。然后我通过将输出文件分布到子目录中而不是使用单个目录来增强了拆分性能,使其达到了00:50。
我的老板要求我将所有内容转换为静态过程式编程,但不包括对象。他说合并需要00:12,而拆分需要00:50不平衡。他希望通过转换为静态方法在00:30内完成拆分。
现在我知道根据这里的说明,静态调用更快。但是我不同意所有静态方法都会更好,因为我将不得不在方法中使用“ref”和“out”参数。
我的问题是:
- 将文件拆分成子目录比使用单个输出目录快得多的原因是什么?(即对于大量文件>200,000)
- 除了将代码从对象转换为静态以实现更高的性能外,还有更好的方法吗?