【问题标题】:Hibernate: memory issues? disadvantages?休眠:内存问题?缺点?
【发布时间】:2011-09-10 17:02:45
【问题描述】:
我正在使用 Hibernate 3.6,直到今天我都找不到使用它的任何缺点。但是今天有人告诉我,当项目变大时,使用 Hibernate 的应用程序会出现内存问题。发生这种情况是因为与不使用休眠的应用程序相比,需要创建和存储大量对象(hibernate-pojo-objects)。
是这样吗?使用休眠还有更多缺点吗?有些人还告诉我,由于对象之间的所有依赖关系,当数据库非常大时,使用对象会变得令人困惑,但我真的无法想象。有人有这方面的经验吗?
谢谢 :-)
【问题讨论】:
标签:
java
database
performance
hibernate
memory
【解决方案1】:
每当您添加抽象层时,它都必须做额外的工作并使用额外的内存来做到这一点。如果它使用额外的内存,您可能需要增加最大堆大小或购买额外的内存,这通常比开发人员的成本便宜,即使那些控制预算的人不这么认为。这可能仍然比它为您节省的开发时间要少。只有您可以决定这是否值得。
【解决方案2】:
其中一些是:
- 很少或没有远程访问和分发能力。
- 映射架构可能很乏味,而 O/R 映射有其技巧,例如使用延迟初始化、急切加载等。对一个人有效的方法可能对另一个人无效。
- 集群功能有限。
- 大型数据集仍会导致内存问题。
- 仅支持数据库级别的安全性,不支持基于角色的安全性,无需添加任何 API,如面向方面编程等。
其他一些人也认为有disadvantages 用于Hibernate。