gpt4 book ai didi

c# - 优化文件操作

转载 作者:可可西里 更新时间:2023-11-01 11:38:30 26 4
gpt4 key购买 nike

我有一个 C# 应用程序,它涉及很多文件操作,即读取、移动、删除、追加等。例如,从本地 FS 上的源路径读取文件并处理后,它是从那里删除,处理后的文件被写入本地 FS 上的目标位置。这一切都是在一组系统上并行完成的,每个系统只处理本地文件。 (文件由负载均衡器在它们之间分发)

我怎样才能提高这个应用程序的性能?

我能想到的是:

1.) 为特定类型的操作(例如删除)创建队列。将所需的信息放入队列中,一个单独的线程将处理该队列。

2.) 不要在 FS 上工作,而是使用内存中的数据存储,例如 Redis。由于数据将在缓存中,因此操作会更快。

3.) 增加代码的并行性。每个线程将处理单独的文件并且应该更快。

上述方法行得通吗?请提出任何其他可能值得考虑的替代方案。

最佳答案

1.)我建议将公共(public)上下文操作批处理在一起以减少同步\上下文切换开销并利用处理器的缓存机制。2.) 将文件分组到一个文件中将减少 Windows 对每个文件的握手性能损失。3.) 尝试使用指针和/或 Win32 API,在许多情况下它们似乎比它们的托管包装器/lib 实现更快。4.) 阻塞收集队列(生产者消费者)可能是一个很好的起点。

关于c# - 优化文件操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27869916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com