【发布时间】:2011-01-11 03:55:27
【问题描述】:
我的程序应该将数百个文件写入磁盘,由外部资源(网络)接收 每个文件都是一个简单的文档,我目前将其以 GUID 的名称存储在特定文件夹中,但是创建数百个文件、写入、关闭是一个漫长的过程。
有没有更好的方法将这些文件存储到磁盘? 我已经找到了一个解决方案,但我不知道它是否是最好的。
首先,我创建了 2 个文件,其中一个类似于分配表,第二个是一个巨大的文件,用于存储我的文档的所有内容。但是从这个文件中读取将是一场噩梦。也许内存映射文件技术可以提供帮助。使用 30GB 或更多会产生问题吗?
编辑:在磁盘上存储 1000 个文本文件的最快方法是什么? (写操作频繁执行)
【问题讨论】:
-
请提供更多信息 - 这些文件的正常访问模式是什么?写一次读多少?写很多?预计文件大小会改变吗?
-
这些文件通常有多大?
-
您无法使用代码加速磁盘 I/O。获得更快的磁盘。就像您在 dbase 服务器中找到的一样。
-
有数百个磁盘驱动器连接到您的计算机。 :-)
-
每个文件平均为 5KB,但有很多,例如我需要像这样写 1000 个文件。并且大量的 IO 会影响我服务器的其他服务我想找到一种解决方案来减少 IO,从而减少我的其他服务的响应时间加上(这些写操作在事务范围内执行,因此开销很大)
标签: c# .net file-io memory-mapped-files