Features like biased locking, lock coarsening, lock elision by escape analysis and adaptive spin locking are all designed to increase concurrency by allowing more effective sharing amongst application threads. But do they actually work? In this two part article, Jeroen Borgers explores these features and attempt to answer the performance question with the aid of a single threaded benchmark.
At the simplest level, scalability is about doing more of something. This could be responding to more user requests, executing more work or handling more data. This article presents some principles and guidelines for building scalable software systems.
With Erlang popularizing Actors, Rubinius adding its Multi-VM, and Ruby 1.9 adding another concurrency primitive with Fibers (Coroutines), a lot of things are going on in the Ruby concurrency world. So we interviewed MenTaLguY, who works on Rubinius, JRuby and many aspects of concurrency in the Ruby world.
Finding performance bottlenecks can be a difficult task and it can get more difficult as our applications grow in size. The Box is a methodology tool that focuses us efforts to improve performance. 6