Correcto Kash. Le has dado en el centro....
On 23 ene, 10:33, Kash <[email protected]> wrote: > Creo que el problema de nuestro amigo es precisamente el error de > OutOfMemory, lo que indica que si que hay un problema en la liberación de > memoria, debido probablemente a los que indica Francisco, hay objetos que se > quedan referenciados y el GC no es capaz de liberar memoria cuando el > sistema la necesita. Por eso creo que el problema está en la implementación > del patrón de diseño, pero sin poder verlo es imposible detectar el error. > Para nuestro amigo es indiferente si la memoria se libera instantáneamente o > no, el problema está en que esta llega a saturarse por que NUNCA se está > liberando. > > El 23 de enero de 2009 10:12, Gustavo Ringel > <[email protected]>escribió: > > > > > No necesariamente tambien puede ser unmnanaged objects que no se suprimen > > de manera adecuada (connections a la database, etc) > > Pero igual mi intencion no fue discutir contra lo que vos decias, sino > > aclarar que la prueba de abrir objetos y hacerles dispose y esperar que la > > memoria se libere de inmediato es un error conceptual. > > > Gustavo. > > > 2009/1/23 Francisco A. Lozano <[email protected]> > > >> No lo sabía, pero creo que ese hecho no es importante. El que haya una > >> OutOfMemoryException indica que hay objetos que no han sido marcados > >> para liberación (ya sea ésta al eliminar la referencia o al reclamarla > >> el runtime para otras allocations). Por tanto, estos objetos siguen > >> estando referenciados. > > >> Francisco A. Lozano > > >> 2009/1/23 Gustavo Ringel <[email protected]>: > >> > Francisco por supuesto que tenes razon en un punto de vista teorico, > >> pero en > >> > la practica el GC de C# solo recolecta memoria cuando hace allocation. > > >> > Ver por ejemplo esto: > > >>http://blogs.msdn.com/tess/archive/2007/04/10/net-garbage-collector-p... > > >> > If we exclude GC.Collect calls, this means that a GC will only occur on > >> > allocation. I have mentioned this before, but I think it is worth > >> > mentioning again... a classic mistake to make is to run a stress test > >> and > >> > then come back 10 mins after the stress test and wonder why memory is > >> not > >> > being released. In other words, objects may well be ready to be > >> released > >> > but no allocations are made, meaning no GCs will occur, so memory usage > >> will > >> > stay flat. > > >> > Gustavo. > > >> > 2009/1/23 Francisco A. Lozano <[email protected]> > > >> >> Si el GC no elimina esos objetos de la memoria es porque mantienes > >> >> referencias a los mismos, simple y llanamente, por mucho dispose que > >> >> hagas. > > >> >> Francisco A. Lozano > > >> >> 2009/1/23 Plugin <[email protected]>: > > >> >> > Saludos a todos. > > >> >> > En primer lugar debo agradeceros vuestra dedicación y consejo, que en > >> >> > más de una situación delicada me han salvado. > > >> >> > La cuestión que quiero plantear es la siguiente: > >> >> > Hemos puesto en marcha una aplicación ASP.Net que emplea NHibernate. > > >> >> > Para la gestión de las sesiones, hemos usado el "Command Pattern", de > >> >> > forma que cada caso de uso > >> >> > se enmarca en una apertura/cierre de sesión. (de forma similar a como > >> >> > se hace en el Session per view ) > > >> >> > Ahora bien. Lo que hemos observado es que al hacer un Close o un > >> >> > Dispose de la sesión, el GC hace caso omiso, y la memoria no se está > >> >> > recuperando, de modo que tras hacer uso varios usuarios de la > >> >> > aplicación, se produce una OutOfMemoryException... > > >> >> > He probado a hacer un test de stress haciendo apertura/cierre/dispose > >> >> > de sesiones, recuperando un objeto, y he comprobado que > >> efectivamente, > >> >> > el uso de memoria crece, crece.... > > >> >> > Dónde puede estar el problema? > >> >> > Hay algo que no entendí bien? > > >> >> > Un saludo. > > -- > > ================================= > Sergio Castillo Checa --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---
