【发布时间】:2012-04-17 15:28:25
【问题描述】:
ZVAL 通常是使用 emalloc 创建的,因此它会在页面请求结束时被销毁。有没有办法获取现有的 ZVAL 并使其在 SAPI 中持续存在(相当于 pemalloc)?用 pemalloc 创建 ZVAL 怎么样?
理想情况下我想做的(在 PHP 代码中)是这样的:
class Object
{
public $foo;
}
if(!($object = persist("object")))
{
$object = persist("object", new Object());
}
$object->foo[] = "bar";
print count($object->foo);
count 每次请求都会返回 +1(假设每次都使用相同的 PHP“worker” - 我正在使用 PHP-FPM)。
【问题讨论】:
-
作为一个有趣的说明:我们决定改变平台。我们现在将使用 Go。
-
酷。你能详细说明原因吗?我在看自己去,很高兴知道其他人的动机。
-
我们需要一个活动的应用程序实例。我们还需要并行执行。我们也评估了 Node 和 Java。 Node 是单线程的并使用异步模型。 Java 使用传统的线程模型(困难)。 Go 使并行执行变得非常容易,并且还有一些其他不错的功能。最重要的是,Go 是编译好的,但具有脚本语言的灵活性。它获得了很大的吸引力。它是新的,但我们认为它至少比 PHP 快:)。
标签: php-extension php-internals