2011-02-09 95 views
4

我在我的应用程序中使用流畅的nhibernate,我试图找出高内存使用的原因。 (我说高了,它是60MB,但它是一个网络应用程序,它不是很大)不幸的是,它看起来很多是在非托管内存中,所以我开始采取措施 - 只要我拿出任何调用nhibernate ,内存使用量降至11MB!为什么哦为什么它会占用这么多的内存?特别是,为什么它会占用非托管内存?Nhibernate使用大量内存

我一直在'谷歌搜索'这一整天,所有我能找到的是来自人们说“NHibernate吃内存...”的帖子,并回答说“不,没有证据”。 NHibernate的人否认它?

回答

5

可能的原因:NHibernate缓存。

检查这些文章:

牢记 “更多的内存使用情况” 不应该 “这是魔鬼”。我的意思是说,如果托管所有东西的机器都有足够的资源,那么缓存或其他因素会提高整体性能。

你可以使用这个免费的探查,所以你可以检查什么是“浪费”你的记忆 - 这也许不是浪费内存,但对于性能优化正确使用 - :

+0

感谢 - 在某种程度上缓存正在发生,因为我可以看到很多我的数据对象只是挂在(我不是100%高兴,但它只是真正的约4MB,但我宁愿它不是至于那些我使用的大型网站,大约有70MB,所以我会试着把它关掉) - 这是30MB的非托管内存分配我最担心的事情似乎很多。 – Paul 2011-02-09 08:25:19