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