跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 流行 ORM 框架性能测试(如图)
未分類
14 12 月 2020

流行 ORM 框架性能测试(如图)

流行 ORM 框架性能测试(如图)

資深大佬 : Braisdom 4

流行 ORM 框架性能测试(如图)

Benchmark               (framework)   Mode  Cnt    Score    Error   Units BenchmarkRunner.query       mybatis  thrpt   10   66.269 ±  5.584  ops/ms BenchmarkRunner.query          jdbc  thrpt   10  125.223 ±  6.476  ops/ms BenchmarkRunner.query     hibernate  thrpt   10   57.952 ±  2.983  ops/ms BenchmarkRunner.query        objsql  thrpt   10   85.329 ±  4.812  ops/ms BenchmarkRunner.update      mybatis  thrpt   10  118.780 ±  6.028  ops/ms BenchmarkRunner.update         jdbc  thrpt   10  184.414 ± 10.612  ops/ms BenchmarkRunner.update    hibernate  thrpt   10   66.626 ±  1.556  ops/ms BenchmarkRunner.update       objsql  thrpt   10  130.013 ±  2.718  ops/ms 

其中 ops/ms 表示每毫秒完成的操作

无论是查询,还是更新,与 MyBatis 无法拉开较大的差距,但多次运行后,总是稳定的领先。ObjectiveSQL 在性能与易用性上相比其它 ORM 框架优势比较明显,编写的代码量上优势更加明显,希望大家多多体验,并能提交 issue,

https://github.com/braisdom/ObjectiveSql

(喜欢的朋友,给个 star,感谢)

大佬有話說 (19)

  • 資深大佬 : wysnylc

    我觉得是辣个蓝人秽土转生

  • 資深大佬 : taogen

    没说过程,直接给结果?可复现吗?

  • 資深大佬 : buliugu

    建议直接建一个 repo 放 Benchmark,发个图太 ppt 了不够硬核(逃

  • 資深大佬 : leonme

    越接近原生 sql 性能越好,封装越深性能越差~很浅显而又试用的道理

  • 資深大佬 : shyangs

    mybatis 3.5.6
    hibernate 5.2.12.Final

  • 資深大佬 : janus77

    这里面应该只有 hibernate 算 orm 框架吧

  • 主 資深大佬 : Braisdom

    @taogen 这里有完整的代码: https://github.com/braisdom/ObjectiveSql/tree/master/benchmark

  • 主 資深大佬 : Braisdom

    @buliugu 估计你没有进项目里看,这里有完整的 benchmark 代码,

  • 主 資深大佬 : Braisdom

    @janus77 ORM 到底是什么,有哪些特征,很难说清,理论上,将关联数据库的表转换为 Java Class 都可以称为 ORM
    @leonme 性能和易用性两者要平衡考虑的,两个指标不可能同时都非常高,封装是解决开发的复杂度,在不的场景中有不同的选择

  • 資深大佬 : ytmsdy

    易用性越好,封装的越多,性能肯定下降。
    越接近原生态,性能肯定越接近原生态。
    但是我觉得吧,绝大部分网站还没有到达性能瓶颈。程序跑的慢,绝大部分是程序写的有问题。

  • 資深大佬 : noble4cc

    这个 objsql 就是大佬你的作品吧,有点类似 jooq,之前脚本语言的框架很多都有这设计

  • 主 資深大佬 : Braisdom

    @noble4cc 是的,有点类似,前期参考过 Jooq,发现 Jooq 有好多地方做的不够好,所以自己才写了一个,主要是针对复杂 SQL 进行处理,同时也支持简单 SQL 的处理。

  • 主 資深大佬 : Braisdom

    @ytmsdy

    高性能和易用性本身就不可能同时存在,此消彼长,具体项目具体分析,不能一概而论。

  • 資深大佬 : Foredoomed

    像 jooq 这种框架不被大多数用户接受的根本原因在于代码生成的 sql 不会是最优的

  • 主 資深大佬 : Braisdom

    @Foredoomed 要理解 ObjectiveSQL 不是生成 SQL,而能用 Java 的语法写 SQL,你看到的 Java 代码几乎和 SQL 一模一样,是不是最优看你怎么写 Java 代码了。

    Order.Table orderTable = Order.asTable();
    Select select = new Select();

    select.project(sum(orderTable.amount) / sum(orderTable.quantity) * 100)
    .from(orderTable)
    .where(orderTable.quantity > 30 &&
    orderTable.salesAt.between(“2020-10-10 00:00:00”, “2020-10-30 23:59:59”))
    .groupBy(orderTable.productId);

  • 資深大佬 : ytmsdy

    @Braisdom 是的。框架选择,具体优化要针对自己实际项目的并发量,服务类型,服务结构来设计

  • 主 資深大佬 : Braisdom

    @ytmsdy ORM 框架的选择是解决业务系统开发的易用性,而在大数据量插入时,可以手动拼接 SQL 的形式,不同场景不同的处理方式。

  • 資深大佬 : taogen

    我认为 README 应该重点介绍
    1. 我为什么要用。ObjectiveSQL 解决了用户什么痛点?为什么要从熟悉的框架转用 ObjectiveSQL ? ObjectiveSQL 真的方便很多吗,还是只是换了种写法而已。
    2. 项目适不适合用。ObjectiveSQL 的优势是什么?在哪些场景有绝对优势? ObjectiveSQL 面向哪些目标用户?为什么要用 ObjectiveSQL ?我的项目适不适合用 ObjectiveSQL ?

  • 主 資深大佬 : Braisdom

    @taogen 好想法,我目前只是介绍了,ObjectiveSQL 是什么?我需要仔细修改一下

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具