Pregunta

Estoy muy impresionado por lo Levante 2.0 trae a la mesa con los actores y StatefulSnippets, etc, pero estoy un poco preocupado por la sobrecarga de la memoria de estas cosas. Mi pregunta es doble:

  1. ¿Cómo determina cuándo Ascensor objetos de estado de recoger la basura?
  2. ¿Qué significa la huella de la memoria de un vistazo solicitud de página como?

Si un rastreador web baila en la huella del sitio, van a estar abriendo lo suficientemente Estado objetos para ahogar un modesto VPS (512M)? La pregunta es muy obviamente, depende de la aplicación, pero tengo curiosidad si alguien tiene alguna figuras del mundo real que se puede tirar un poco por mí.

¿Fue útil?

Solución

tiendas de elevación información de estado en una sesión, por lo que una vez que la sesión se destruye el estado asociado con esa sesión se va.

Dentro de la sesión, Ascensor seguimiento de cada página de ese estado se asigna a (por ejemplo, asignación entre un botón de ajax en el navegador y una función en el servidor) y tienen un latido del corazón desde el navegador. Funciones para páginas que no han visto los latidos del corazón en 10 minutos se Unreferenced por lo que la recogida de basura JVM ellos. Todo esto es sintonizable, para que pueda cambiar la frecuencia de los latidos del corazón, la vida útil función, etc., pero en la práctica los valores por defecto funcionan bastante bien.

En cuanto a la sesión de explosión, sí ... eso es un problema menor. Los sitios populares (incluyendo http://demo.liftweb.net/ ) experimentan. El código de ejemplo (véase http://github.com/lift/lift/tree / maestro / ejemplos / ejemplo / ) detecta las sesiones que fueron creados por una única solicitud y luego abandonada y despues elegir los principios. Estoy corriendo demo.liftweb.net con 256 MB de tamaño de la pila (que encajaría en un VPS 512) y, en ocasiones, el número de sesiones se eleva más de 1.000, pero eso es rápidamente comprime para el tráfico de motores de búsqueda.

Otros consejos

Creo que la pregunta sobre la huella de memoria una vez fue respondida en algún lugar de la lista de correo, pero no lo encuentra en este momento.

La recolección de basura se realiza después de algún tiempo de inactividad. Hay, sin embargo, un ejemplo en el wiki que utiliza algunas heurísticas a mejores matar a sesiones generados por los rastreadores web.

Por supuesto, para su propio proyecto que tiene sentido para comprobar el consumo de memoria con algo como VisualVM al generar un par de sesiones a ti mismo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top