通过“通用脚本启动序列”,我的意思是在我网站的大多数页面中,第一项业务是咨询3个特定文件(通过include()
),它们集中定义常量,许多脚本中使用的某些函数,以及一两个类,以及提供数据库凭据。我不知道这样的设置是否有更标准的术语。
我想知道的是,是否可能有太多这样的东西,结果会让事情变慢。我知道使用include()
有一定的开销,因为它是在文件系统,解析和执行中寻找的另一个文件。如果有include
太多这样的事情,我想知道我是否接近那一点。注:我的一些页面include()
仍然是他们特别需要的更多脚本(例如,定义仅由几页使用的函数的脚本),并且我不计算这些偶尔的额外include
s ,无论如何都使用得相当谨慎。我只担心大多数页面上出现的3 include
并将所有内容都设置好。
3 include
是什么?
其中两个在webroot之外。 common.php
定义了一系列在开发和生产站点之间不同的函数,类和其他东西。 config.php
定义了开发和生产站点中不同的常量和路径(连接到哪个数据库等)。当然,特别希望这个文件在webroot之外。 <{1}} config.php
s include()
位于底部。
另一个在webroot内部,包含一行:
common.php
开发站点和生产站点之间的目录不同。
(请随意质疑以这种方式设置include [path to appropriate directory]/config.php
背后的理由,但我觉得这确实为准备执行每个页面提供了一个好的,可靠的系统,我的问题是它是否是坏的在每个页面上有那么多includes
s作为基线。)
答案 0 :(得分:2)
使用APC
,您的担忧就会消失。 opcode您的文件将缓存在内存中,一切都将超级快。 :) Facebook does this所以它肯定会帮助你扩展。
因为您可能没有注意到1个包含或50个速度之间的差异,但对于具有高并发性的应用程序,I / O 可能是一个巨大的瓶颈 。所以关键不是速度,而是缩放。
答案 1 :(得分:1)
最好的办法是使用某种加速器,APC或eAccelerator或类似的东西来保存它们缓存在RAM中。这背后的原因很多,在繁忙的网站上,这意味着失败。
例如,一位朋友在他的网站上做了一个实验,每天大约有15k用户,平均页面加载时间为0.03s。他删除了他用作模板的大部分内容 - 平均加载时间降至0.01秒。然后他放了一个加速器 - 每页0.002秒。我希望这些数字说服你,如果你不使用某种加速器,必须尽可能少地在繁忙的网站上保留。
这是因为扫描目录,查找文件,打开文件,阅读文件等所需的高I / O.
因此,将包含保持在最低限度。研究您网站最重要的部分,并通过将所需部分移动到一般包含等来进行优化。
答案 2 :(得分:0)
我不相信性能与包含的内容有关,因为想到一个包含文件包含500行代码的情况,而在另一种情况下,你有50个包含文件,每个只包含一行代码。
答案 3 :(得分:0)
或者,如果您使用Windows作为操作系统,则可以使用WinCache http://php.net/manual/en/book.wincache.php