网站和 PHP:执行速度更快。从几个目录与许多目录加载文件? [复制]

Posted

技术标签:

【中文标题】网站和 PHP:执行速度更快。从几个目录与许多目录加载文件? [复制]【英文标题】:Website & PHP: Which performs faster. Load files from few directory vs. many directories? [duplicate] 【发布时间】:2013-05-20 08:20:28 【问题描述】:

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

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 操作,就会发现加载许多嵌套目录会花费更多时间。但我不知道,我希望你的帮助。 感谢您的所有帮助:)

【问题讨论】:

从 C:\ 或 C:\Users\Jahe\My Documents\Misc\.. 打开文件是否更快? filezilla 中的性能问题是通过 FTP-Protocoll 和文件和目录列表引起的。 @user2246674 :手动,从 C:\ 打开速度很快。但我不知道系统是怎么做的 【参考方案1】:

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

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

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

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

【讨论】:

谢谢你的建议,伙计【参考方案2】:

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

【讨论】:

真的吗?我不知道这种情况。【参考方案3】:

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

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

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

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

【讨论】:

谢谢!所以不会有重大影响? 不,嵌套目录的性能影响可能太小而无法衡量。

以上是关于网站和 PHP:执行速度更快。从几个目录与许多目录加载文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

cython与python的不同都有哪些

查询减慢网站速度,必须使它们执行得更快

织梦DEDE轮播代码,从几个网站复制了几段轮播代码过来,轮播图有图,但不轮播,为啥?没用CSS和JS

PHP 要使用的包含数

一次PHP面试经历

50个技巧提高你的PHP网站程序执行效率