Almacenamiento de objetos entre solicitudes en PHP sin serialización

Estoy escribiendo una aplicación web con estado en PHP en la que el estado potencialmente contiene muchos objetos. En este momento, guardo todos estos objetos en $ _SESSION y los serializo al final de la solicitud. Esto es un poco molesto, porque la serialización de toda la sesión lleva unos segundos, y la deserialización lleva incluso más tiempo.

Quería probar APC, porque esperaba que los objetos se estuvieran copiando, en lugar de ser serializados. Por desgracia, parece que si doy un apc_store($object) un objeto, parece serializarlo de todos modos antes de pasarlo a otro proceso. (La historia es que los matrices y los valores primitivos se están copiando sin serialización, pero esa no es una solución relevante para mí, ya que los objetos de mi sesión tienen muchas referencias (circulares)).

Mi pregunta: ¿existe una forma conocida de mantener los objetos persistentes en PHP sin tener que serializarlos después de cada solicitud? He escuchado rumores de que el intérprete de HipHop puede ayudar con esto, pero no he encontrado ningún ejemplo que funcione en la red. ¿Alguien puede decirme si es posible en PHP?

(Lo sé, debería estar escribiendo este proyecto en Java u otro lenguaje que admita instancias persistentes sin una conexión TCP)

Siempre que necesite almacenar (congelar) un objeto, debe ser serializado. Eso es independiente del almacenamiento (APC, archivos de sesión, base de datos, etc.), es porque el proceso de secuencia de comandos terminará y la próxima vez que se inicie, los objetos deberán cobrar vida nuevamente.

Entonces las cosas no se pueden mantener en un “estado de ejecución”, los objetos siempre se serializarán para ser almacenados.

Se sabe que la serialización de PHP no es la más rápida. Existen implementaciones alternativas, puede usar, por ejemplo, la extensión de igbinary PHP . Ofrece una función de serialización / deserialización junto a la gestión de sesión transparente. Tal vez esto sea realmente útil para su escenario.

En cualquier caso: mientras más almacene dentro de la sesión, cuanto más necesite descongelar o reactivar al comienzo de la solicitud, más tiempo tomará.

Relacionado: ¿Qué es el manejador de serialización de php_binary?

En mi aplicación web statefull descargo la mayoría de mis objetos a un almacenamiento xml que también actúa como configuración inteligente xml. Por lo tanto, no necesito serializar demasiados objetos, sino solo un subconjunto (estado) de mi archivo xml. Este sigue siendo un enfoque del lado del servidor, pero puede intentar descargar la serialización al cliente. Pero tal vez serializas demasiados objetos? ¿Y por qué no almacenar el objeto en un archivo en tiempo de ejecución?