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會更快。
1
2
3
4
5
6
7
8
9
10
11
|
簡單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代碼性能比較,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:https://www.jdon.com/50618