2011-10-20 32 views
2

我想知道什么是更好的性能温度:写入一个大的文本文件(约10GB或更多)或使用子文件夹系统将有3个级别与256文件夹中每一个,最后一级将是文本文件。例如:写一个大文件或多个小文件

1 
1 
2 
3 
    1 
    2 
    3 
    4 
4 
2 
3 
4 

这将是沉重的访问(将被打开,添加一些文字的东西,然后关闭),所以我不知道什么是在第二个好,打开和关闭文件指针一千次,或改变一个大文件里面的指针千次。

我在一个核心i7,6GB DDR3的RAM和60MB/s写入磁盘速度在ext4下。

+0

什么是应用程序? – Ryan

+0

个人资料,找出? – nmichaels

+0

你是什么意思重访问?只读还是写入?你将如何寻找一个文本文件?而且,在大多数情况下,IO是程序中速度最慢的部分,所以通过缩小文件(二进制或压缩),您将获得很多速度。 – ruslik

回答

2

你问一个相当普遍的问题,所以通用的答案是去与大文件,访问它,让文件系统和它的缓存担心优化访问。他们有机会提出一种比你刚刚做的更先进的算法(没有冒犯)。

0

做出决定,你需要知道许多问题的答案,包括:

  • 你将如何确定哪些许多文件的访问对你之后的信息?
  • 当你需要追加时,它会是逻辑上的最后一个文件,还是应该在其中找到的任何文件的末尾?
  • 您如何知道在哪里查看信息所在的任何给定文件(大或小)?
  • 您的256 文件(如果您全部使用它们,则需要1600万左右)将需要相当数量的目录存储。

你实际上没有提及读取文件的内容 - 这很奇怪。

如果你真的只写入文件或文件,那么总是用O_APPEND(或"a")打开的单个文件可能是最好的。如果您正在更新(以及追加)信息,那么您会遇到锁定问题(并发访问;谁获胜)。

所以,你没有在问题中包含足够的信息给任何人提供任何明确的答案。如果您添加的评论中有足够多的信息,那么您应该将这些评论放入问题中(编辑问题;添加评论材料)。

相关问题