我想知道在性能方面什么更好:写入一个大文本文件(大约 10GB 或更多)或使用具有 3 个级别的子文件夹系统,每个级别有 256 个文件夹,最后一级将是文本文件. 例子:
1
1
2
3
1
2
3
4
4
2
3
4
它将被大量访问(将被打开,附加一些文本内容然后关闭),所以我不知道什么更好,在一秒钟内打开和关闭文件指针千次,或者改变一个大文件中的指针千次。
我在核心 i7、6GB DDR3 内存和 ext4 下的 60MB/s 写入磁盘速度。
我想知道在性能方面什么更好:写入一个大文本文件(大约 10GB 或更多)或使用具有 3 个级别的子文件夹系统,每个级别有 256 个文件夹,最后一级将是文本文件. 例子:
1
1
2
3
1
2
3
4
4
2
3
4
它将被大量访问(将被打开,附加一些文本内容然后关闭),所以我不知道什么更好,在一秒钟内打开和关闭文件指针千次,或者改变一个大文件中的指针千次。
我在核心 i7、6GB DDR3 内存和 ext4 下的 60MB/s 写入磁盘速度。
你问了一个相当通用的问题,所以通用的答案是使用大文件,访问它,让文件系统及其缓存担心优化访问。他们很可能提出了比您刚才所做的更先进的算法(没有冒犯)。
要做出决定,您需要知道许多问题的答案,包括:
您实际上没有提及有关读取文件的任何内容-这很奇怪。
如果您真的对一个或多个文件进行只写访问,那么始终使用O_APPEND
(or "a"
) 打开的单个文件可能是最好的。如果您正在更新(以及附加)信息,那么您会遇到锁定问题(并发访问;谁获胜)。
因此,您没有在问题中包含足够的信息,以便任何人给出任何明确的答案。如果您添加的评论中有足够多的信息,那么您应该将这些评论放入问题中(编辑问题;添加评论材料)。