太多需要/包括减慢PHP

时间:2012-05-18 06:15:56

标签: php performance

我现在正在编写一个php框架。我想知道在请求期间,当require / includerequire_once / include_once文件过多时,它是否会变慢?

4 个答案:

答案 0 :(得分:1)

当然可以。做太多次会导致速度减慢。

但更严重的是,与内存中发生的任何事情相比,触摸磁盘的IO操作都非常慢。因此,在使用大型框架时,包括文件在内的 通常会成为主要的性能因素(只需查看Zend Framework ...)。

但是,通常有一些方法可以减轻这种情况,例如APC和类似的操作码缓存。

有时也采用编程方法。例如,如果我没记错的话,Doctrine 1可以将所有内容捆绑到一个巨大的文件中,以减少IO调用。

如果有疑问,请对使用您的框架编写的应用程序进行深入分析,看看include / require / etc是否是主要的慢点之一。

答案 1 :(得分:1)

是的,这会降低您的应用程序速度。 *_once调用通常更昂贵,因为必须检查是否已包含该文件。有很多包含,有很多硬盘访问和大量的内存使用捆绑。我使用Zend Framework开发了应用程序,每次请求时总共包含150到200个文件 - 您真的可以看到它对整体性能的影响。

答案 2 :(得分:1)

您添加的文件越多,就会增加一些负载。但是,如果您必须在require和require_once之间进行选择,则require_once / include_once需要更多负载,因为服务器需要进行检查以查看是否在其他地方包含了相同的文件。所以如果你可以避免这种情况,至少可以提高性能。

答案 3 :(得分:0)

除非您使用缓存库,否则每次请求时都会反复包含这些文件。肯定会减慢速度。创建一个仅include - 需要include - ed。

的框架