JEE与Spring Boot代码性能比较分析
JavaEE与SpringBoot其实很难比较测试,前者适合单体SOA架构,后者适合微服务,但是还是有好事者把两者放在一起比较性能。
我把一些JEE和Spring代码放在一起做了同样的事情。Spring做了一些开箱即用的好东西,所以我在一些JEE示例中复制了它以提高性能。
测试环境:IBMJRE8.0.5.22、IBMLiberty18.0.0.3AppServer、底层使用UbuntuLinux18.04.1LTS和MySQL5.7.24以及MySQL8.0.13JDBC驱动程序。
硬件:采用AMD2700xRyzen处理器,在2600GHz频率下具有32GB内存。
实际结果:
- Spring可以节省一些编码时间
- Spring通常会为性能做出很好的选择,但是加入到JEE应用程序时,这些优势就会消失。
- Spring执行save()或findAll()之类方法时不履行@Transactional,Spring会更改隔离级别和事务传播。这使得Spring在执行非更新数据库的功能时具有优势,但是IMO,Spring应该真正尊重设置的隔离级别和传播。当改变JEE中的方法的隔离级别和传播时,JEE会更快。
简单REST调用 LibertyperfRESTJEE3631ms LibertyperfRESTSpring2909ms SpringBootperfRESTSpring3064ms RESTwithJPA LibertyperfRESTJPAJEE65531ms LibertyperfRESTJPASpring37076ms SpringBootperfRESTJPASpring37757ms RESTwithJPA(EclipseLink) LibertyperfRESTJPASpring-EL37709ms SpringBootperfRESTJPASpring-EL76791ms
总结
以上所述是小编给大家介绍的JEE与SpringBoot代码性能比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!