Spring POJO真的比無(wú)狀體的會(huì)話EJB(SLSB)快嗎?
目前,很多人都認(rèn)為 spring 不論在那個(gè)方面都會(huì)比 SLSB 有更高的效率,真的是這樣嗎?
spring 中的 POJO 的生命周期可以是 Singlton 或每請(qǐng)求創(chuàng)建(或是 2.0 支持的 session 及 application,request 等范圍), SLSB 是通過(guò)實(shí)例池經(jīng)心管理的。如果 spring POJO 不采用 singlton 的形式那么就需要承受創(chuàng)建和銷毀 POJO 的消耗,當(dāng)然 SLSB 的出池和入池同樣會(huì)有同步的消耗,由于現(xiàn)在的虛擬機(jī)對(duì)象的創(chuàng)建和消耗速度大幅提高所以不一定比 SLSB 獲取的速度慢,但是如果每個(gè)對(duì)象構(gòu)建的資源消耗很大如總是需要構(gòu)建或初始化復(fù)雜對(duì)象,那么 SLSB 的速度顯然有優(yōu)勢(shì)。如果 spring 采用 singleton 模式,那么其中如果需要同步,則雖然省去了創(chuàng)建和銷毀的消耗,但是大量的同步會(huì)使性能的殺手。并且在多 CPU 的服務(wù)器上沒有同步的多線程并行效果更好(可以在不同的處理器上單獨(dú)運(yùn)行)
posted on 2007-03-29 10:29 超越巔峰 閱讀(2406) 評(píng)論(5) 編輯 收藏 所屬分類: Java EE