当前位置: 首页 > 编程笔记 >

JEE与Spring Boot代码性能比较分析

黎承颜
2023-03-14
本文向大家介绍JEE与Spring Boot代码性能比较分析,包括了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在执行非更新html" target="_blank">数据库的功能时具有优势,但是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

总结

以上所述是小编给大家介绍的JEE与Spring Boot代码性能比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 问题内容: 我有一个分配大量内存的应用程序,我正在考虑使用一种比malloc更好的内存分配机制。 我的主要选择是:jemalloc和tcmalloc。使用它们中的任何一个有什么好处吗? http://locklessinc.com/benchmarks.shtml中的某些机制(包括作者的专有机制- 无锁)之间有很好的比较, 并提到了每种机制的利弊。 鉴于这两种机制都是活跃的,并且会不断完善。是否有

  • 更新:为了更明显地说明我正在努力做的事情:我将拥有5000万以上的设备流媒体音频。流平均为100KB,峰值流量时为200K流/分钟。我正在寻找一种存储解决方案来满足这种需求。我一直在研究Bookkeeper、Kafka、Ignite、Cassandra和Redis。到目前为止,我只对redis和ignite进行了基准测试,但我很惊讶ignite这么慢。

  • 分页与分段比较,如下表所示 - 编号 分页 分段 1 非连续的内存分配 非连续的内存分配 2 分页将程序分成固定大小的分页。 分段将程序分成可变大小的段。 3 由操作系统负责 由编译器负责。 4 分页比分段更快 分段比分页慢 5 分页更接近操作系统 分段更接近用户 6 它会遭受内部碎片问题 它会遭受外部碎片问题 7 没有外部碎片 没有外部碎片 8 逻辑地址分为:页码和页码偏移 逻辑地址分为:分段号

  • 问题内容: 基于另一个SO问题,如何检查两个格式正确的XML代码片段在语义上是否相等。我需要的只是“相等”与否,因为我正在将此用于单元测试。 在我想要的系统中,它们是相等的(请注意“开始”和“结束”的顺序): 我可以使用lmxl和其他工具,并且一个仅允许对属性进行重新排序的简单函数也可以正常工作! 基于IanB答案的工作片段: 问题答案: 您可以使用formencode.doctest_xml_c

  • 问题内容: 将代码点与Java字符进行比较的“正确”方法是什么?例如: 我知道我可以做到: 但是这段代码看起来很脆弱。有没有比较正式的API方法来,或转换到一个比较? 问题答案: 有一点背景知识:Java在1995年出现时,该类型基于原始的“ Unicode 88 ”规范,该规范限于16位。一年后,当Unicode 2.0实施时,替代字符的概念超出了16位的限制。 Java内部以utf-16格式表

  • 问题内容: 我想知道我的Java程序中是否包含很多代码,这会影响代码的性能吗(例如,程序会变慢)?Java中的逻辑与C中的逻辑相同吗? 问题答案: 它会影响我的代码的性能吗(例如,程序会更慢)? 不,这不会影响代码的性能。 二进制文件(类文件)的大小不会增加,因为导入 没有 使用任何剪切和粘贴机制来实现。 例如,它只是避免必须写的语法糖 这是一个小测试,证明了这一点: (修改中) Java中导入背