4

我的印象是 FastCGI 允许您在 Web 应用程序中加载一次,然后您只需“提供”FastCGI 一些功能,例如myHandleHTTPRequest($url),然后在请求到来时调用该功能。这样一来,您的应用程序一直在内存中准备就绪,您将获得更好的性能,对吧?

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

在我看来,PHP 正在由 FastCGI 加载,好的,这带来了一些改进,但是我的应用程序仍然在每次请求时重新加载。

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

编辑:这个问题已经改写成这个问题:Custom PHP FastCGI interface

4

2 回答 2

3

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

您可以做些什么来提高性能:

  1. 使用APC或 xcache 等,透明地预编译每个 php 文件,避免每次请求都重新编译。
  2. 缓存。Apc 和其他人提供了存储变量的机制,其生命周期甚至跨越请求之间。这可用于在请求之间共享处理过的数据,并将应用程序数据保存在内存中。
于 2009-06-01T14:43:30.880 回答
2

是的,你可以做到这一点,或多或少忘记所有花哨的 PHP 集成东西(这是给你 General-Purpose-PHP-Interpreter-As-FastCGI 的东西)并将你的应用程序编写为 FastCGI 服务器本身.

这完全是另一个话题,但您可能想了解 Perl 应用程序如何处理它以作为指南。

于 2009-06-01T14:40:28.780 回答