首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate + ActiveRecord + PostgreSQL =内存异常

NHibernate + ActiveRecord + PostgreSQL =内存异常
EN

Stack Overflow用户
提问于 2011-09-13 19:12:14
回答 1查看 339关注 0票数 2

我在winforms C#.Net 2.0中有一个系统,它使用ActiveRecord + NHibernate与PostgreSQL 9数据库通信。当用户打开系统时,通过一个新的SessionScope()开始与数据库的通信。对于一些用户来说,它工作得很完美……但对于其他人,系统会生成一个内存异常,与msdn论坛中的Marcio问题相同:link。我该如何解决这个问题?问题出在NHibernate!当我尝试关闭ISession对象或尝试提交事务时,就会出现错误。

EN

回答 1

Stack Overflow用户

发布于 2011-09-13 20:32:53

OutOfMemoryException的潜在原因可能是您发布的代码之外的原因。你只是有一个内存泄漏,它可以在你的应用程序中的任何地方。异常将从尝试分配更多内存的代码引发,而不一定来自导致内存泄漏的代码。使用memory profiler找出导致内存泄漏的原因。

然而,这个问题很可能是由于NHibernate中的一级缓存膨胀造成的。来自SessionScope文档:

同时,NHibernate会跟踪作用域内对象的变化。如果有太多的对象和太多的更改需要跟踪,那么性能将会慢慢下降。因此需要不时地进行刷新。

  • 取消GC调用,因为您不需要它们。
  • 限制session
  • Flush/Clear会话的范围确保您正确使用

(不要从数据库加载不需要的信息)lazy loading

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7400906

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档