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

减少包含的文件数

  •  4
  • takeshin  · 技术社区  · 15 年前

    我的应用程序基于Zend框架和条令,每个请求都包含300个文件。它们大多是相同的文件。

    这是一个相当大的开销。部分解决者 Zend_Cache (和memcache),但并非所有页面都可以缓存。

    • 如何减少这个数字?如何加速?

    条令有选择权 compile the needed files 对于生产服务器和应用程序的最终版本来说,这似乎是非常合理的。

    我的计划是编译其他的图书馆(我已经把所有的 require_once s)。

    • 这个任务有什么工具吗?也许有些缓存驱动程序会自动执行?如何设置它们?
    2 回复  |  直到 15 年前
        1
  •  1
  •   TomáÅ¡ Fejfar    15 年前

    最好的选择是使用APC或Zend_加速器。但是您仍然可以使这些“编译”脚本将类合并到一个文件中。这样可以将所需的IO降到最低。不幸的是,您还需要重写自动加载过程,以便它查找适当的文件。您通常可以将公共类压缩在一起(zend_form+elements+decorators、常用验证器、请求+响应+路由器+控制器、zend_db+adapters+zend_db_select等)。主要地,总是在每个请求上使用的类可以很容易地被压缩并手动包含在一个文件中。最好的方法是添加调试调用,保存所有包含的文件( http://www.php.net/get_included_files )进入数据库,然后:

    SELECT * FROM files GROUP BY filename WHERE COUNT(filename) = $numOfRequests
    

    结果中的所有文件都可以安全地合并到单个文件中,并在引导之前包含在其中:)

        2
  •  2
  •   Kevin Vaughan    15 年前

    PHP文件包含的开销通常可以用操作码缓存来弥补,例如 APC ,可通过PECL进行扩展。操作码缓存通常通过缓存已编译的字节码来工作,这样读取和解析源的开销只在第一个请求时产生。这将大大否定对PHP文件进行任何源代码编译的需要或好处。