【问题标题】:PHP: Including a page from deeply nested directory hierarchy - performance issuePHP:包括来自深度嵌套目录层次结构的页面 - 性能问题
【发布时间】:2011-11-13 22:57:06
【问题描述】:

假设,我即将包含来自深度嵌套目录层次结构的一些页面:

require '/path/to/project/views/forms/member/login/submit.php'

我从操作系统课程中了解到:每次我们要访问/搜索文件时:读取路径的每个目录的inode(在unix系统中)以定位文件。那么,这种包含是否也会影响性能?

抱歉,我没能说清楚。

【问题讨论】:

    标签: php performance include


    【解决方案1】:

    没有。就性能问题而言,这个问题微不足道,可以忽略。

    【讨论】:

    • 真的吗?你能解释一下或提供一些我可以学习的参考链接吗?
    【解决方案2】:

    根据大多数计算机的当前处理速度,读取深度嵌套目录中的文件所需的时间是微不足道的。你甚至不会注意到它。

    【讨论】:

    • 当 Web 应用程序要在共享服务器上运行时,它会与许多其他用户的进程竞争 CPU 时间,因此我的应用程序不会获得全部 CPU 时间...
    【解决方案3】:

    第一次遍历目录路径时会发生一次命中。之后,stat() 数据被缓存并且开销变得最小。只有当有问题的目录被推出统计缓存并且必须从磁盘重新读取数据时,才会有更大的影响。

    即便如此,命中率也很小。考虑到 Apache 必须对服务器上的每一次点击执行完全相同类型的操作,以及查找/加载+解析 .htaccess 文件等等。

    【讨论】:

      【解决方案4】:

      您正在尝试将您在操作系统课程中学到的知识应用到 Web 应用程序中,这真是太好了,但通常这不会有帮助。操作系统认为“性能影响”的级别与通过网络与用户通信的应用程序很可能使用数据库完全不同。在操作系统中,计算微秒的基准测试是正常的,Web 应用程序可能会真正关心毫秒到十毫秒的范围。缩短十微秒甚至无法通过 Internet 测量。是的,我知道 xhprof 显示微秒,但这并没有改变任何东西。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-31
        • 2015-05-02
        • 2020-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多