閱讀359 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Spring 2.5 Perfomance Improvements 200% 直逼 Guice

並發性能提升的原因之一是使用了 ConcurrentHashMap,原來的 Collections.synchronized(new HashMap()) 存在同步鎖的性能瓶頸;

如果你是用JDK 5.0或以上的版本,就可以直接得到這個性能的提升的好處了。

或者下載 Emory concurrent utilities backport 加到 CLASSPATH 中
https://dcl.mathcs.emory.edu/util/backport-util-concurrent/

當然還要努力,越快越好啦。。。

引用

The upcoming Spring Framework version 2.5 will bring a 200% improvement for concurrent access over Spring 2.0.*. I used Crazy Bob's Semi Useless Benchmark ™ as a starting point. I fiddled with the code slightly to change the default behavior from "prototype" to "singleton", and I saw that spring 2.5 was faster than Guice for singletons.

Here are some benchmarks (there is variability based on the runs)

* Spring 2.0 vs. guice 1.0:
o Prototype: Single thread: Spring is 50-150X slower. Concurrent: Spring is 50-150X slower.
o Singleton: Single thread: Spring 3X slower - 2X faster. Concurrent: Spring is 5-10X slower
* Spring 2.0.6 vs. guice 1.0:
o Prototype: Single thread: Spring is ~10X slower. Concurrent: Spring is 5X slower.
o Singleton: Single thread: Spring 2X slower - 2X faster. Concurrent: Spring:Guice ~2:3
* Spring 2.14m vs. guice 1.0:
o Prototype: Single thread: Spring is 5-7X slower. Concurrent: Spring is 3-4X slower.
o Singleton: Single thread: neck and neck. Concurrent: Spring is 1-1.5X faster
* guice 1.0:
o Prototype: Single thread vs. Concurrent: Concurrent might be a bit slower than single threaded
o Singleton: Single thread vs. Concurrent: Concurrent is quite a bit faster than single threaded

詳細請見這裏
https://www.jroller.com/Solomon/entry/spring_2_5_perfomance_improvements
 

最後更新:2017-04-02 00:06:24

  上一篇:go 從工作流狀態機實踐中總結狀態模式使用心得
  下一篇:go 個人網頁中必不可少的十五大Web API