【问题标题】:JPA/ORM vs JDBC for performance limited machines性能受限机器的 JPA/ORM 与 JDBC
【发布时间】:2010-12-23 20:47:25
【问题描述】:

我们正在创建一个小型应用程序,该应用程序将部署到非常有限的机器上。他们只有 256mb 的 RAM。

我想使用 JPA,因为它简化了代码并消除了对 JDBC ResultSet 代码的需求。但是,JPA 在这么小的机器上的开销会是一个因素吗?我现在正在考虑使用 Toplink,它有一个 2.5mb 的 JAR 文件。

我们只有有限数量的表,所以 JDBC 代码不会太麻烦。但是 JPA 使代码变得如此出色。

干杯。

【问题讨论】:

    标签: performance orm jpa jdbc


    【解决方案1】:

    JPA/ORM 在运行时的性能总是大于或等于 JDBC,因为它们都基于 JDBC。

    正如您所指出的,您从 JPA/ORM 获得的最大提升是在开发阶段。

    我想使用 JPA,因为它简化了代码并消除了对 JDBC ResultSet 代码的需求。

    我不确定我是否理解此声明。 JPA 将在幕后使用 ResultSet;你只是不会写它。从 ResultSet 到对象的映射被封装在 XML 或注解中。

    如果您真的受内存限制,您可能必须传递 JPA 并手动编写 JDBC 代码。

    您可能会在这种情况下查看 Spring JDBC,因为它为 JDBC 支持提供了非常好的设计,使其非常简单。

    256MB 内存?您将很难使用任何 3rd 方库。

    【讨论】:

    • '我想使用 JPA,因为它简化了代码并消除了对 JDBC ResultSet 代码的需求。' - 这就是我的意思,我们不需要写它。 JPA 很棒,因为它可以只返回集合。尽管我不喜欢它,但我认为我们必须使用 JDBC。谢谢。
    【解决方案2】:

    取决于操作系统和您正在运行的其他内容,256MB 的 RAM 并不像您想象的那么小。使用 ORM 解决方案可能完全可行,但最好的方法是亲自测试和查看。

    测试它并查看它是否可以在您的环境中工作应该相对简单。创建一个简单的项目或对使用 ORM 的项目进行修改,以及一个实体来执行一些测试事务。然后观察它的性能和内存使用情况。取决于你需要做什么,它可能没问题。

    您也可以将 JVM 内存限制在某个级别,这将导致更多的垃圾回收,但除非您达到限制,否则它应该可以防止崩溃。

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 2010-09-20
      • 2020-08-03
      • 2012-08-29
      • 2019-08-11
      • 2012-06-15
      • 2013-09-29
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多