File io 在更少的文件夹中有更多的文件更快,还是在更多的文件夹中有更少的文件更快?

File io 在更少的文件夹中有更多的文件更快,还是在更多的文件夹中有更少的文件更快?,file-io,performance,directory,File Io,Performance,Directory,大家好。我正在创建一个应用程序,它将生成和存储数百万张图像。在我开始之前,我想知道是否有人知道生成更多文件夹并在每个文件夹中只保留几个文件更好,或者我应该使用几个文件夹并用很多文件填充它们 >生成器将用C++编写,文件将通过请求直接访问。 谢谢, 史蒂夫在速度、可管理性等方面:使用更多文件夹。如果您检查一些大型应用程序,通常情况下,它们会将文件拆分到多个文件夹中。大多数应用程序和/或文件系统不喜欢一个文件夹中有太多的文件。从程序员的角度来看,这并不重要。在速度、可管理性等方面:使用更多文件夹。

大家好。我正在创建一个应用程序,它将生成和存储数百万张图像。在我开始之前,我想知道是否有人知道生成更多文件夹并在每个文件夹中只保留几个文件更好,或者我应该使用几个文件夹并用很多文件填充它们

<> >生成器将用C++编写,文件将通过请求直接访问。 谢谢,
史蒂夫

在速度、可管理性等方面:使用更多文件夹。如果您检查一些大型应用程序,通常情况下,它们会将文件拆分到多个文件夹中。大多数应用程序和/或文件系统不喜欢一个文件夹中有太多的文件。从程序员的角度来看,这并不重要。

在速度、可管理性等方面:使用更多文件夹。如果您检查一些大型应用程序,通常情况下,它们会将文件拆分到多个文件夹中。大多数应用程序和/或文件系统不喜欢一个文件夹中有太多的文件。从程序员的角度来看,这并不重要。

与以往一样,您需要在特定的部署平台上对各种场景运行一些测试。请注意,您没有提到正在运行的操作系统/文件系统等


我通常会在深度嵌套的层次结构(可能很快但很难管理)和所有内容都存储在一个目录中的平面层次结构之间实现某种平衡。后一种情况在过去的大多数平台上都会导致性能问题。您需要存储多少数据以及您需要解决方案的性能将决定您如何构建目录,一些实验将在这里为您提供指导。

与以往一样,您需要在特定的部署平台上对各种场景运行一些测试。请注意,您没有提到正在运行的操作系统/文件系统等


我通常会在深度嵌套的层次结构(可能很快但很难管理)和所有内容都存储在一个目录中的平面层次结构之间实现某种平衡。后一种情况在过去的大多数平台上都会导致性能问题。您需要存储多少数据以及解决方案的性能将决定您如何构建目录,一些实验将为您指明方向。

想到的事情:

Pro“更少的文件夹”

  • 要导航的每个文件夹都意味着用户再次单击,页面加载时会出现另一次延迟
  • 如果用户要浏览所有(或树的很大一部分),那么所有这些额外的文件只需要发送更多的字节。与总数相比,这是微不足道的,除非您将“多文件夹”策略发挥到极致,但它表明在某个地方是有限制的
Pro“更多文件夹”:

  • 长长的目录内容列表将迫使用户滚动、提前键入或以其他方式交互以查找特定文件,而不仅仅是选择它,因为他们可以一眼就看到页面
  • 用户单击文件夹Foo必须等待加载该目录中的所有项目,页面才能完成呈现。对于只需要一个图像的用户来说,这可能是明显的滞后和大量字节
  • 对目录中项目的每次访问都需要一些时间。在老式的文件系统上,这通常是一个O(n)操作。较新的文件系统支持O(ln(n))访问。这将如何影响系统的最佳运行取决于您计划使用的文件系统的性能。还要注意通常的用例(我认为它是查看少量目录,而不是整个树,不是吗?)
针对这些竞争压力进行优化将取决于了解典型的使用模式是什么样的,这意味着您可能需要先进行猜测


但为了便于在屏幕上显示,我建议每个目录中的条目多于少数,少于100个。然后,您可以收集统计数据并从中进行调整。

想到的事情:

Pro“更少的文件夹”

  • 要导航的每个文件夹都意味着用户再次单击,页面加载时会出现另一次延迟
  • 如果用户要浏览所有(或树的很大一部分),那么所有这些额外的文件只需要发送更多的字节。与总数相比,这是微不足道的,除非您将“多文件夹”策略发挥到极致,但它表明在某个地方是有限制的
Pro“更多文件夹”:

  • 长长的目录内容列表将迫使用户滚动、提前键入或以其他方式交互以查找特定文件,而不仅仅是选择它,因为他们可以一眼就看到页面
  • 用户单击文件夹Foo必须等待加载该目录中的所有项目,页面才能完成呈现。对于只需要一个图像的用户来说,这可能是明显的滞后和大量字节
  • 对目录中项目的每次访问都需要一些时间。在老式的文件系统上,这通常是一个O(n)操作。较新的文件系统支持O(ln(n))访问。这将如何影响系统的最佳运行取决于您计划使用的文件系统的性能。还要注意通常的用例(我认为它是查看少量目录,而不是整个树,不是吗?)
针对这些竞争压力进行优化将取决于了解典型的使用模式是什么样的,这意味着您可能需要先进行猜测

但为了便于在屏幕上显示,我建议每个目录中的条目多于少数,少于100个。然后您可以收集统计数据并从中进行调整。

@dmckee 没有点击,因为图像都是自动加载的。想想地图软件

@布莱恩·阿格纽 它将在某种Linux云上运行/服务。从任何角度来看,我都不是一个IT人员,只是