nhibernate不会在会话关闭后释放内存

nhibernate不会在会话关闭后释放内存,nhibernate,Nhibernate,我将NHibernate 2.2与c#3.5和VS2008一起使用 问题是当我关闭Nhibernate会话对象时,内存没有释放。 即使我在每次关闭后都调用GC.Collect(),但没有任何东西被释放 当会话关闭时,如何强制NHibernate释放会话中加载的对象 谢谢使用Dispose而不是close。(不仅针对会话,而且针对在.net中实现IDisposable的每个对象)即使调用GC.Collect(),也有许多方法可以防止垃圾收集的实际发生。例如,如果其他仍处于活动状态且正在使用的对象包

我将NHibernate 2.2与c#3.5和VS2008一起使用

问题是当我关闭Nhibernate会话对象时,内存没有释放。 即使我在每次关闭后都调用GC.Collect(),但没有任何东西被释放

当会话关闭时,如何强制NHibernate释放会话中加载的对象


谢谢

使用Dispose而不是close。(不仅针对会话,而且针对在.net中实现IDisposable的每个对象)

即使调用
GC.Collect(),也有许多方法可以防止垃圾收集的实际发生。例如,如果其他仍处于活动状态且正在使用的对象包含对不再需要的对象的引用,则该对象将保持活动状态


另外,不要忘记,所使用的内存的一部分将是NHibernate为您从数据库返回的对象。

在周围的代码中会有问题吗?你怎么知道探查器没有清理内存?我在Windows任务管理器中看到它,只有当我运行GC.Collect()时,内存才会变高。它会下降一点(大约1或2 MB),但不会释放整个内存。一些备注:1。一次性物品不能通过垃圾收集一次清理多次。2.应用程序占用的内存以不同于实现单个对象以防止碎片的速度提供给其他应用程序。3.无法在windows任务管理器中查看对象的单个内存打印。4.单个会话中超过1/2MB的内存听起来太多(加载的数据太多)。5.您最好下载某种探查器工具(我使用Ants memory profiler)以获得更准确的视图,在您开始调试GC之前,是否有任何技巧或技术可以用于更快地释放此内存?我想在有512MB内存的PC上部署我的应用程序,所以内存管理应该更好我有这个确切的问题-这是一个问题,但似乎有来自其他nhib用户的大量拒绝!