Хранение переменных функции php в memcached - PullRequest
2 голосов
/ 17 июня 2011

Мне было интересно, возможно ли хранить переменные функции в memcached.Я написал базовую систему шаблонов, которая компилирует шаблоны XML в функции.Шаблоны могут стать очень большими, и я думаю, что я мог бы получить повышение производительности, если бы смог их кешировать.Будет ли что-то вроде этой работы, или я просто буду кэшировать ссылку на функцию?

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

РЕДАКТИРОВАТЬ: я понимаю, что есть php ускорители , которые делают именно то, что я хочу,однако было бы намного проще использовать memcached, потому что мне не нужно проходить процесс одобрения другой технологии.

Ответы [ 2 ]

3 голосов
/ 17 июня 2011

Я так не думаю. Естественно, я смотрел на сериализацию. Но:

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

При использовании memcached все, что вы, вероятно, можете сделать, это сохранить код в виде строки, а затем вызвать create_function после того, как вы извлечете его.

1 голос
/ 17 июня 2011

Я не думаю, что было бы повышение производительности с «сериализацией» исходного кода функции в виде строки и ее воссозданием через create_function. Это скорее будет в сто раз медленнее, чем определение функции в PHP, потому что ввод / вывод с внешнего носителя + делает то, что нужно PHP в любом случае.

Вы должны пойти с кешем кода операции. Но если производительность PHP - единственное длительное узкое место в вашем приложении, вы счастливый человек.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...