2

我想知道是否可以将函数变量存储在 memcached 中。我编写了将 xml 模板编译成函数的基本模板系统。模板可以变得非常大,如果我可以缓存它,我想我可以提高性能。像这样的东西会起作用,还是我只是缓存对函数的引用?

$populate_template = function($values){
   //compiled template
};
$memcached_object->set("some_key",$populated_template);

编辑:我确实意识到有php 加速器可以完全满足我的要求,但是能够使用 memcached 会容易得多,因为我不必经历获得另一项技术批准的过程。

4

2 回答 2

3

我不这么认为。自然,我看着序列化它。但:

PHP Warning:  Uncaught exception 'Exception' with message 'Serialization of 'Closure' is not allowed' in php shell code:1

使用 memcached,您所能做的就是将代码存储为字符串,然后create_function在将其拉出后调用。

于 2011-06-17T03:58:08.547 回答
1

我认为将函数源代码“序列化”为字符串并通过 create_function 重新创建它不会提高性能。它会比在 PHP 中定义函数慢一百倍,因为使用外部介质的输入/输出 + 做 PHP 在任何一种情况下都需要做的事情。

您需要使用操作码缓存。但是,如果 PHP 性能是您的应用程序中唯一持久的瓶颈,那么您就是一个快乐的人。

于 2011-06-17T04:08:19.053 回答