保留在内存中的 PHP 对象


PHP objects that stay in memory

我记得在 php.net 上读到(虽然不幸的是似乎找不到页面),PHP解释器可以以不同的方式运行 - 最常见的是,每次请求页面时,都会创建一个PHP解释器的实例,运行其过程,然后被销毁,以及与该特定页面调用相关的所有内存。显然,也可以允许所有内存徘徊,以便在将来的页面调用中再次使用它;据我了解,本质上允许多个不同的 PHP 脚本访问和修改相同的对象,而不会在脚本完成后丢失它们。

或者至少,我记得。这有什么道理吗?如果是这样,我将如何设置它?

php 不是这样工作的。 它是关于运行和忘记的。

您可以使用用户空间共享内存扩展在请求之间保存数据,例如:APC、XCACHE、Memcached 等。

或在调用session_start后使用会话数据数组

$_SESSION

不要把PHP脚本想象成Tomcat中的Java应用程序。 标准PHP不是为该用例设计的.php编译器可以即时工作。

您可以将共享内存用于某些您想要的东西,但 Redis/Memcache 可能是更好的选择。

让服务器在请求之间停留,对象也会这样做:

  • appserver-in-php - PHP 5.3+ 的通用 HTTP 应用程序方法(灵感来自 Rack 和 WSGI)

使用编写良好的应用程序,它为您提供比 APC 更快的速度,但是如果您需要放置多个盒子(您仍然可以使用粘性会话),它不会在用户之间扩展。