在php中使用file_exists进行CPU加载

时间:2010-01-10 21:15:35

标签: php file-exists

我拥有一个每分钟高负载cpu httpd请求的站点。我注意到我在每个httpd请求上使用“file_exists”。这个功能要重得多吗?

3 个答案:

答案 0 :(得分:6)

此功能仅检查文件是否存在 - 这意味着可以访问磁盘(这可能需要一些时间,但也不会那么多)

考虑到您的应用程序可能是由几十个(如果不是数百个)的PHP文件构成的,每个请求都需要读取,我不认为一个file_exists生成任何差。

(好吧,至少,只要您正在检查本地磁盘上的文件 - 不通过任何网络驱动器或类似的东西)


作为旁注:如果您想确定CPU在PHP脚本中的使用位置,您可能会对Xdebug extension感兴趣,它提供了一个分析功能。

你可以阅读我前一段时间给出的答案,这篇答案很长:How can I measure the speed of code written in php? - 我不会在此复制粘贴。

您可能还想阅读我对该问题的回答(我写了一篇关于Xdebug和剖析的文章):Optimizing Kohana-based Websites for Speed and Scalability

答案 1 :(得分:2)

实际上,玩“猜测瓶颈”可能是一项非常徒劳的任务 - 我建议使用分析器,例如内置于Zend Studio的分析器。

答案 2 :(得分:1)

file_exists通常非常便宜,特别是因为结果缓存在php's stat cache中。像重DB这样的区域往往是cpu的最大消费者。

尝试进行一些分析,以确定您的应用的哪个部分耗尽了大部分时间,这里有一些示例:

http://www.ibm.com/developerworks/opensource/library/os-php-fastapps2/