目前,很多人都认为
spring
不论在那个方面都会比
SLSB
有更高的效率,真的是这样吗?
spring
中的
POJO
的生命周期可以是
Singlton
或每请求创建(或是
2.0
支持的
session
及
application,request
等范围),
SLSB
是通过实例池经心管理的。如果
spring POJO
不采用
singlton
的形式那么就需要承受创建和销毁
POJO
的消耗,当然
SLSB
的出池和入池同样会有同步的消耗,由于现在的虚拟机对象的创建和消耗速度大幅提高所以不一定比
SLSB
获取的速度慢,但是如果每个对象构建的资源消耗很大如总是需要构建或初始化复杂对象,那么
SLSB
的速度显然有优势。如果
spring
采用
singleton
模式,那么其中如果需要同步,则虽然省去了创建和销毁的消耗,但是大量的同步会使性能的杀手。并且在多
CPU
的服务器上没有同步的多线程并行效果更好(可以在不同的处理器上单独运行)