是否有可能有一个持久的PHP会话更快地交付网页


Is it possible to have a persistent PHP session for faster delivery of webpages?

嗯,具体来说,我正在运行自己的内容管理系统在Linux Apache2 MySQL PHP服务器上运行。该系统可与Linux内核w/modules相媲美。

——(请求开始)

系统启动他的"init"脚本,该脚本负责基于依赖的模块加载(只加载最小的模块,以适当的顺序,所以它"只是工作",但没有其他(禁用/未使用的模块不加载))。

一旦系统准备好了,请求处理就开始了——所有的数据都被加载、解析、处理、缓冲、咀嚼等等,直到我们有一个完整的(x)HTML页面。

——(请求)

一旦请求被处理,数据被传递给浏览器,系统被终止。所有这些都在很短的时间内完成,但是cpu最密集的是开始部分(准备系统使用)。


我有几个选项:

  1. 让系统以它现在的方式(和风险性能问题,在它被部署用于实际使用后(大约)。100-500请求/秒/系统))
  2. 做一些预加载(手动准备系统,然后不要让任何神奇的事情发生)
  3. 找到一种方法来保持系统处于准备使用状态(所有模块加载,类初始化,准备好MySQL链接等)

问题是:

  • 有办法实现第3点吗?(第二点是我最不想要的)
  • 如果可能,怎么做?

谢谢你给我指路的建议!

可能你需要的是PHP APC, eAccelerator或其他一些扩展来解析你的代码,并将其作为字节码保存在内存中,这对于CPU饥饿的情况可以帮助你的性能很多。看来你有知识来设置这样的扩展,我建议你"APC"是最常用和测试的一个:

http://en.wikipedia.org/wiki/List_of_PHP_accelerators

编辑:对于MySQL,我将使用"持久连接",这可能也有帮助。

你可能想把你的Php编译成c++或Java,通过牺牲一点来获得性能,去维基百科查看更多信息的HipHop