Concurrency and Leveraging Multi-Core PCsThe Cincom Smalltalk Team takes the performance needs of our customers seriously and addresses it on a number of fronts. Code and application performance is always an interesting topic, and for developers who have the right tools and knowledge, finding and solving performance bottlenecks can be highly productive and very rewarding part of application development. Most developers find Cincom Smalltalk’s performance to be more than adequate, especially when compared to other dynamic languages thanks to our high-performance, JIT’ed (just-in-time compilation) Virtual Machine. But what if you need more?
For a while now, companies have been using concurrency in their development. But going all-out into concurrency is difficult.
As your use of concurrency goes up linearly, the complexity goes up exponentially; in other words, the more you use concurrency, the harder it gets.
For example, in linear programming, a bug can be difficult to track down and find, but in concurrency, it might be almost impossible. Concurrency doesn’t add complexity, it multiplies it. Because of this, concurrency can be a nightmare. There are a lot of places to make a mess, and it’s easy to get in over your head.
We have a solution to that problem. It doesn’t work everywhere—we didn’t reinvent the wheel—but we have a solution that people use to get big bang for their bucks. This is a simplified way to get “big gains” with “little pain.” That solution—MatriX.
- Two to five times throughput improvements
- 80 percent of the benefits with 20 percent of the difficulty
We are successfully using MatriX in our project. One thing we use it for is to parallelize execution of (time-consuming) unit tests that check code quality. These tests execute at 28 percent of original time, when using MatriX on a quad-core box.Current Cincom® VisualWorks® customer