12

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

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

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

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

或者

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

5 回答 5

10

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

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

于 2010-06-07T23:33:28.043 回答
2

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

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

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

于 2010-06-07T23:35:19.367 回答
2

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

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

于 2010-06-07T23:39:40.393 回答
1

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

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

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

您还应该确保遵循其他高可扩展性最佳实践。将CDN用于静态资源、优化脚本和样式表等。获取Steve SoudersTheo & George Schlossnagle 的书籍并从头到尾阅读它们。

于 2010-06-07T23:48:57.373 回答
-1

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

于 2010-06-07T23:56:22.157 回答