ActiveJDBC性能

3
今天我发现了一个有趣的库 - ActiveJDBC。它提供了类似RoR的ActiveRecord接口,我正在考虑替换Hibernate,但是有一个问题 - ActiveJDBC能处理真正大的查询和结果吗?在任何应用程序中使用它代替Hibernate是否明智?

根据我的经验和知识,我认为ActiveJDBC会比Hibernate快得多,因为它不涉及Hibernate下面的太多开销。然而,由于它不是基于JPA的实现,如果您想在将来切换到另一个ORM,那么这将是困难的。此外,在ActiveJDBC中更改DB模式需要编写“DB迁移”脚本,而在Hibernate中则更容易通过更新实体类来完成。我无法确定是否聪明地使用替换Hibernate,但这完全取决于上下文。 - Mubin
你能把它发布为答案吗?我想我会同时使用。 - skayred
1个回答

11

我是ActiveJDBC的开发人员,所以请带着怀疑的态度看待我的建议:)尽管我没有进行大量性能比较测试,但简单的测试(存储和读取数万条记录)显示,ActiveJDBC的速度大约比JDBC慢两倍,而Hibernate比ActiveJDBC慢两倍,这使得Hibernate比纯JDBC慢4倍。总体而言,ActiveJDBC比Hibernate更为轻量级,这也是其开发的初衷。请参阅此博客:框架到底能有多轻?ActiveJDBC vs Hibernate。

Hibernate的架构是在90年代考虑了客户端/服务器模型(会话、延迟加载、对象图等),而ActiveJDBC于2009年主要是为现代Web应用程序的请求/响应而构建的,并使用透传模型。根据您的逻辑、数据和数据库优化,您的效率将有所不同,但我确信ActiveJDBC几乎肯定会更快。 Mubin指出了需要迁移的事实,我想说这部分是正确的。迁移系统总是一个好主意,但只要表存在,ActiveJDBC就不关心它们是如何创建的。

干杯


目前我正在尝试将其与FlyWay作为迁移引擎一起使用,它看起来非常像RoR ActiveRecord,所以我很喜欢它。但是我正在开发一种平台,因此我必须尊重其他开发人员并提供Hibernate接口。 - skayred

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接