代码之家  ›  专栏  ›  技术社区  ›  Hammerite

有多少“includes”作为公共脚本启动序列的一部分太多?或者根本就没有这回事?

  •  0
  • Hammerite  · 技术社区  · 15 年前

    所谓“公共脚本启动序列”,我的意思是,在我的网站上的大多数页面中,第一个业务顺序是查阅3个特定文件(通过 include() ),它集中定义常量、许多脚本中使用的某些函数和一两个类,并提供数据库凭据。我不知道是否有一个更标准的术语来描述这样的设置。

    我想知道的是,是否有可能有太多这样的结果,使事情变慢。我知道使用 包含() 会有一定的开销,因为它是另一个文件,需要在文件系统中查找、解析和执行。如果有太多这样的事情 include s、 我想知道我是否在那个点附近。注意,我的一些网页 包含() 包括 包括 出现在大多数页面上并设置所有内容的。

    包括 什么?

    其中两个在webroot之外。 common.php config.php 定义开发和生产站点中不同的各种常量和路径(连接到哪个数据库等)。当然,这个文件最好在webroot之外。 s 通用.php 在底部。

    include [path to appropriate directory]/config.php
    

    (请随意质疑建立 includes 包括

    4 回复  |  直到 15 年前
        1
  •  1
  •   bisko    15 年前

    最好的办法是使用某种加速器,APC或eAccelerator或类似的东西来将它们缓存在RAM中。背后的原因是相当多的,在一个繁忙的网站,这意味着一个丢失。

    这是因为扫描目录、查找文件、打开文件、读取文件等等都需要很高的I/O。

    所以尽量减少包含量。研究站点中最重要的部分,并通过将所需部分移动到“常规包含”等方式进行优化。

        2
  •  2
  •   gblazex    15 年前

    使用 APC 你的烦恼就会消失。这个 opcode 你的所有文件 缓存在RAM中 超快速 . :) Facebook does this 规模 .

    因为您可能不会注意到1 include或50在速度方面的任何差异,但是对于具有 高并发性,I/O 瓶颈 . 所以关键不是速度,而是缩放。

        3
  •  0
  •   Starx    15 年前

    我不相信性能与没有includes有任何关系,因为考虑这样一种情况,一个包含的文件包含500行代码,而在另一种情况下,您有50个包含的文件,每个文件只有一行代码。

        4
  •  0
  •   kanenas    15 年前

    或者,如果您碰巧使用Windows作为操作系统,您可以使用 WinCache .
    http://php.net/manual/en/book.wincache.php

    推荐文章