0

抱歉,如果这个问题有问题。我正在开发网站。但是我脑子里有一个关于文件系统的令人困惑的情况。选择从少数嵌套目录或深层嵌套目录加载文件?例子:

A. file_get_contents('layout/guest/pages/home/data/slogan.txt');
   include_once 'layout/guest/required/front.php';

OR

B. file_get_contents('layout/slogan.txt');
   include_once 'layout/front.php';

哪个性能更快?

我担心这个,因为网站内部有很多文件系统操作。如果我们查看 FileZilla 操作,就会发现加载许多嵌套目录会消耗更多时间。但我不知道,希望对您有所帮助。感谢您的所有帮助:)

4

3 回答 3

2

假设您使用的是基于 UNIX 的操作系统,差别很小,因此您应该使用您认为更易于维护的操作系统。FTP 是完全不同的情况,因为它实际上像人类一样穿越目录(它无法访问您的 inode)。

由于inode 的工作方式,您的操作系统不会逐个遍历您的目录以寻找对另一个文件的引用。目录的存在是为了让您的生活更轻松,但大多数文件系统在内部仅将它们表示为组织文件。

dir_index通过在 extX 文件系统上启用(指令)(或者,检查 XFS,因为它在处理大量文件时非常好),定期清理文件和整理磁盘碎片并使用更快的驱动器,您将获得文件系统性能提升。

另外,尽量require_once()不要require()在加载文件时使用,因为这样文件只会被加载一次。

于 2013-05-20T08:28:57.570 回答
1

目录嵌套的深度几乎没有任何区别。重要的是您包含的文件的数量、大小和复杂性,而不是它们包含的特定路径。

于 2013-05-20T08:24:33.773 回答
0

我认为你担心的是错误的问题。

根据您使用的操作系统,使用多个目录而不是一个目录可能会有一点开销 - 操作系统需要检查权限等。但是,在现代硬件上,您很难衡量影响和缓存在操作系统级别几乎可以肯定会消除任何明显的影响。

您在问题中显示的结构显示了一种将文件放在逻辑位置的经过深思熟虑的方法 - 几乎可以肯定,从可维护性的角度来看,这比将它们全部放在同一个目录中要好。

另一方面,include() 及其朋友肯定会对性能产生一些影响。

于 2013-05-20T08:28:48.250 回答