网站& PHP:哪个表现得更快。从少数目录加载文件到多个目录?

时间:2013-05-20 08:20:28

标签: php directory

对不起,如果这个问题有问题。我正在开发网站。但是我的脑海中存在一个令人困惑的情况。选择从几个嵌套目录或深层嵌套目录加载文件?例如:

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操作,就会看到加载许多嵌套目录会占用更多时间。但我不知道,我希望你的帮助。 谢谢你的帮助:)

3 个答案:

答案 0 :(得分:2)

假设您使用的是基于UNIX的操作系统,那么差异很小,因此您应该使用您更容易维护的内容。 FTP是一个完全不同的情况,因为它实际上像人一样遍历目录(它无法访问你的inode)。

由于how inodes work,您的操作系统不会逐个遍历目录,寻找对另一个文件的引用。目录的存在是为了让您的生活更轻松,但大多数文件系统在内部并不代表组织文件。

您可以通过在extX文件系统上启用dir_indexinstructions)来获得文件系统性能提升(或者,check out XFS,因为它在处理大量文件时非常好),定期清理文件并对磁盘进行碎片整理并使用更快的驱动器。

此外,在加载文件时,请尝试使用require_once()而不是require(),因为这样文件只会被加载一次。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

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

另一方面,肯定some performance impact有include()及其朋友。