我的印象是 FastCGI 允许您在网络应用程序中加载一次,然后您只需“提供”FastCGI 一些功能,例如 myHandleHTTPRequest($url), ,然后每当有请求时就会调用它。这样,当您的应用程序始终在内存中准备就绪时,您将获得更好的性能,对吗?

但我开始明白,事实并非如此。还是我错了?

在我看来,PHP 是由 FastCGI 加载的,好吧,这提供了一些改进,但是随后 我的 应用程序仍在根据每个请求重新加载。

我想加载我的应用程序(或读取“框架”)一次(然后每隔 500 个请求左右重新加载一次。)我可以这样做吗?

编辑:这个问题已被改写为: 自定义 PHP FastCGI 接口

有帮助吗?

解决方案

是的,你可以做到这一点,或多或少忘记所有的事情 精美的 PHP 集成内容 (这就是为您提供通用 PHP 解释器作为 FastCGI 的原因)并将您的应用程序编写为 FastCGI 服务器本身。

这是一个完全不同的话题,但你可能想研究一下 Perl 应用程序如何实现这一点 作为指导。

其他提示

fastcgi 的作用是避免为每个请求生成一个 php 解释器(就像 cgi 那样)。这节省了大量的处理时间,因为 php 解释器保存在内存中,或多或少像 mod_php 一样。

您可以采取以下措施来提高性能:

  1. 使用 APC, ,或 xcache 等,它透明地预编译每个 php 文件,避免对每个请求进行重新编译。
  2. 缓存。Apc 和其他人提供了存储变量的机制,其生命周期甚至可以跨越请求。这可用于在请求之间共享处理后的数据,并将应用程序数据保存在内存中。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top