JEE与Spring Boot代码性能比较

JavaEE与Spring Boot其实很难比较测试,前者适合单体SOA架构,后者适合微服务,但是还是有好事者把两者放在一起比较性能。

我把一些JEE和Spring代码放在一起做了同样的事情。Spring做了一些开箱即用的好东西,所以我在一些JEE示例中复制了它以提高性能。

测试环境IBM JRE 8.0.5.22、IBM Liberty 18.0.0.3 App Server、底层使用Ubuntu Linux 18.04.1 LTS和MySQL 5.7.24以及MySQL 8.0.13 JDBC驱动程序。

硬件:采用AMD 2700x Ryzen处理器,在2600 GHz频率下具有32 GB内存。

实际结果:

  • Spring可以节省一些编码时间
  • Spring通常会为性能做出很好的选择,但是加入到JEE应用程序时,这些优势就会消失。
  • Spring执行save()或findAll()之类方法时不履行@Transactional,Spring会更改隔离级别和事务传播。这使得Spring在执行非更新数据库的功能时具有优势,但是IMO,Spring应该真正尊重设置的隔离级别和传播。当改变JEE中的方法的隔离级别和传播时,JEE会更快。
简单REST调用
Liberty        perfRESTJEE      3631 ms
Liberty        perfRESTSpring    2909 ms
SpringBoot       perfRESTSpring    3064 ms

REST with JPA

Liberty      perfRESTJPAJEE      65531 ms
Liberty      perfRESTJPASpring    37076 ms
SpringBoot    perfRESTJPASpring    37757 ms

REST with JPA (EclipseLink)

Liberty       perfRESTJPASpring-EL   37709 ms
SpringBoot    perfRESTJPASpring-EL    76791 ms

原文 

https://www.jdon.com/50618

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » JEE与Spring Boot代码性能比较

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址