El NHibernate documentation y el libro NHibernate In Action indican que el proveedor de memoria caché NHibernate.Cache.HashtableCacheProvider
no está destinado para uso en producción. Sin embargo, no pude encontrar una razón para esto. ¿Alguien sabe el motivo?¿Por qué NHibernate.Cache.HashtableCacheProvider no está destinado para uso en producción?
13
A
Respuesta
12
Porque no admite ningún tipo de semántica de almacenamiento en caché razonable (primer ejemplo que se le ocurre: tiempos de espera), y básicamente crece indefinidamente.
Está diseñado solo para pruebas, ya que solo proporciona la implementación más simple posible de una memoria caché local.
Cuestiones relacionadas
- 1. WPF: ¿Por qué no debería usar {TemplateBinding Margin} en ControlTemplate? ¿El Margin está destinado solo para contenedores de elementos?
- 2. ¿ASP.NET MVC está destinado a reemplazar Webforms?
- 3. ¿Delphi 2010 está listo para el uso de producción?
- 4. ¿Kafka está listo para el uso de producción?
- 5. ¿Por qué Array.count está disponible en modo dev pero no en producción?
- 6. SQLite en desarrollo, PostgreSQL en producción, ¿por qué no?
- 7. ¿Está ZeroMQ listo para producción?
- 8. ¿Por qué Log4Net no está creando archivos de registro en producción?
- 9. carriles producción 'css no está precompilado'
- 10. ¿Aún no está G1GC oficialmente listo para producción?
- 11. ¿Está listo el nodo.js para producción?
- 12. ¿Por qué no está dispuesto/cerrado SqlConnection?
- 13. SQLAlchemy y django, ¿está lista para producción?
- 14. ¿Está lista la Caja para producción?
- 15. Linq + NHibernate: ¿está lista para producción?
- 16. ¿JRuby está listo para la producción?
- 17. Hibernate: ¿Cuál es el grupo de conexiones y por qué el predeterminado no es apto para la producción?
- 18. ¿por qué get() no está funcionando?
- 19. ¿Por qué Intellisense "no está disponible para C++/CLI"?
- 20. ¿Por qué String.Concat no está optimizado para StringBuilder.Append?
- 21. ¿Por qué no está utilizando mi operador sobrecargado para ++?
- 22. ¿Por qué no está representado igual por ~ = en Matlab?
- 23. ¿Por qué $ (document) .ready no está disparando para mí?
- 24. ¿Es Python2.6 suficientemente estable para uso en producción?
- 25. ¿Por qué no está LinkedList.Clear() O (1)
- 26. Uso de menos css framework en producción
- 27. LÁMPARA, XAMPP para producción
- 28. ¿Por qué obtengo "caché: [GET /] señorita" en producción usando WebRick?
- 29. Uso de HSQLDB en entornos de producción
- 30. Excepción ReSharper volver a lanzar posiblemente destinado
"Un caché con una mala política es otro nombre para una pérdida de memoria". http://blogs.msdn.com/b/oldnewthing/archive/2006/05/02/588350.aspx – codekaizen
¡Gracias! El crecimiento indefinido ya es motivo suficiente para que no lo use en mi aplicación. Sin embargo, ¿podría elaborar más la cuestión de semántica/tiempo de espera razonable de almacenamiento en caché? ¿Y qué se entiende exactamente con las pruebas, las pruebas "verdaderas" (pruebas unitarias, etc.) o solo algunas pruebas ad hoc "de juego"? –
@Marco: la memoria caché debe ser capaz de optimizar el uso de recursos limitados (memoria) priorizando, manejando dependencias, caducidad ... HashtableCache es suficiente para pruebas unitarias (por ejemplo, afirmando que llamar al mismo método de repositorio dos veces resulta en solo una llamada a DB). También es genial para jugar porque es predecible. –