目前,很多人都認為
spring
不論在那個方面都會比
SLSB
有更高的效率,真的是這樣嗎?
spring
中的
POJO
的生命周期可以是
Singlton
或每請求創建(或是
2.0
支持的
session
及
application,request
等范圍),
SLSB
是通過實例池經心管理的。如果
spring POJO
不采用
singlton
的形式那么就需要承受創建和銷毀
POJO
的消耗,當然
SLSB
的出池和入池同樣會有同步的消耗,由于現在的虛擬機對象的創建和消耗速度大幅提高所以不一定比
SLSB
獲取的速度慢,但是如果每個對象構建的資源消耗很大如總是需要構建或初始化復雜對象,那么
SLSB
的速度顯然有優勢。如果
spring
采用
singleton
模式,那么其中如果需要同步,則雖然省去了創建和銷毀的消耗,但是大量的同步會使性能的殺手。并且在多
CPU
的服務器上沒有同步的多線程并行效果更好(可以在不同的處理器上單獨運行)