【发布时间】:2011-01-03 13:32:18
【问题描述】:
我拥有一个每分钟 cpu httpd 请求负载很高的站点。我注意到我在每个 httpd 请求上都使用了“file_exists”。那个功能很重吗?
【问题讨论】:
标签: php file-exists
我拥有一个每分钟 cpu httpd 请求负载很高的站点。我注意到我在每个 httpd 请求上都使用了“file_exists”。那个功能很重吗?
【问题讨论】:
标签: php file-exists
这个函数只会检查一个文件是否存在——这意味着访问磁盘(这可能需要一点时间,但也不会太多)
考虑到您的应用程序可能由几十个(如果不是数百个) 的 PHP 文件组成,每个请求都必须读取这些文件,我认为一个 file_exists 没有任何区别。
(好吧,至少,只要您正在检查本地磁盘上的文件——而不是通过任何网络驱动器或类似的东西)
作为旁注:如果您想确定 CPU 在 PHP 脚本中的使用情况,您可能会对 Xdebug extension 感兴趣,它提供了分析功能。
您可以阅读我前段时间给出的这个答案,它很长:How can I measure the speed of code written in php? --我不会在这里复制粘贴。
您可能还想阅读我对那个问题的回答
【讨论】:
file_exists 通常非常便宜,特别是因为结果缓存在php's stat cache.. 像重型 DB 这样的区域往往是 CPU 的最大消耗者。
尝试进行一些分析以确定您的应用程序的哪一部分使用时间最长,这里有一些示例:
http://www.ibm.com/developerworks/opensource/library/os-php-fastapps2/
【讨论】:
现实一点,玩“猜测瓶颈”可能是一项非常徒劳的任务 - 我建议使用分析器,例如 Zend Studio 中内置的分析器。
【讨论】: