【问题标题】:SSI or PHP Include()?SSI 或 PHP 包含()?
【发布时间】:2011-02-28 22:44:44
【问题描述】:

基本上我很快就会启动一个网站,我预测会有很多流量。出于场景考虑,假设我每天将有 100 万个唯一身份。数据将是静态的,但我也需要包含

我只会在另一个 html 页面中包含一个 html 页面,没有任何动态(我有我的原因,我不会透露以保持这个简单)

我的问题是,性能方面更快

<!--#include virtual="page.htm" -->

<?php include 'page.htm'; ?>

【问题讨论】:

    标签: php apache server-side-includes


    【解决方案1】:

    最快的性能是将模板存储在其他位置,生成完整的 HTML,并根据模板中的更改重新生成。

    如果你真的想比较 PHP 和 SSI,我猜 SSI 可能更快,更重要的是:没有 PHP 会在网络服务器进程/线程所需的 RAM 上轻得多,从而使你能够拥有更多的 apache 线程/处理请求的进程。

    【讨论】:

      【解决方案2】:

      SSI 内置于 Apache,而 Apache 必须生成一个 PHP 进程来处理 .php 文件,所以我希望 SSI 更快更轻。

      不过,我同意前面的回答,走 PHP 路线将为您提供更多的灵活性,以便在未来进行更改。

      确实,存在的任何速度差异在大局中都可能微不足道。

      【讨论】:

      • 生成一个 PHP 进程?你从未使用过 mod_php 或 FastCGI?
      • 我不完全确定为什么我在写这篇文章时会考虑香草 CGI;我几乎只使用 mod_php 提供 PHP。
      【解决方案3】:

      也许你应该研究一下 HipHop for php,它将 PHP 编译成 C++。由于 C++ 的编译速度更快。 Facebook 使用它来减少服务器上的负载。

      https://github.com/facebook/hiphop-php/wiki/

      【讨论】:

      • 虽然这只有在用户有权访问他们的服务器根目录时才有效,但我喜欢这个答案。如果我的服务器没有配置 cPanel,我会试试这个。 (cPanel 的事情让我不想打扰任何事情。)
      • @animuson:我希望一个希望每天获得 100 万唯一身份的网站不使用消费级托管网站,而是可以通过他们自己专用的任何方式配置软件服务器。
      • 如果您的房东有不错的客户服务,您可能会与他们通电话并让他们为您安装。特别是如果这意味着他们的服务器上的负载更少。
      【解决方案4】:

      我认为没有人可以为您明确回答这个问题。这取决于您的 Web 服务器配置、操作系统和文件系统选择、SSI 使用的复杂性、服务器上的其他竞争进程等。

      您应该将一些示例文件放在一起,并在您打算部署的服务器上运行测试。使用一些 http 测试工具,例如 absiegehttperfjmeter 来生成一些负载并比较两种方法。这是获得适合您环境的答案的最佳方式。

      将 PHP 与 mod_php 和像 APC 这样的操作码缓存一起使用可能会非常快,因为它会自动缓存高需求文件。如果您关闭apc.stat,它根本不需要访问磁盘来提供 PHP 脚本(需要注意的是,这使得在正在运行的系统上更新 PHP 脚本变得更加困难)。

      您还应该确保遵循其他高可扩展性的最佳做法。使用CDN 获取静态资源、优化脚本和样式表等。通过Steve SoudersTheoGeorge Schlossnagle 获取书籍并从头到尾阅读。

      【讨论】:

        【解决方案5】:

        我建议您使用像 Squid 这样的网络缓存,或者对于更复杂的东西,Oracle Web Cache

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-10-27
          • 1970-01-01
          • 2014-06-26
          • 1970-01-01
          相关资源
          最近更新 更多