As of Imatest 4.3 we will be upgrading the required Matlab Compiler Runtime library to v9.0 (R2015b). We had upgraded to v8.5 (R2015a) in Imatest 4.2 but several major changes made upgrading again worth the effort. Matlab has introduced a new runtime Execution Engine that dramatically improves the speed and efficiency of core aspects of program execution such as function call overhead and object-oriented programming overhead. What this means for you is that nearly all aspects of Imatest should have improved speed in 4.3 and up.
So how much difference are we talking here? To illustrate, let me pull the curtain back a bit on the Imatest development process. Internally we have a series of tests for Imatest IT that run on an hourly basis on the current major release code. These tests primarily look for changes in results to make sure that nothing we do will cause changes in results, and if they do we’ll get notified immediately. It also lets us know when someone does something they weren’t supposed to that stops a whole module from working! So do to a little timing test I’ve taken a section of the SFRplus test suite and run it on both MCR versions.
The first couple runs of both versions are quite slow, this is a consequence of the Matlab JIT execution engine. The first run includes overhead for compiling the code down one step. After about 5 runs though you can see the results start to become a little more stable. v8.5 and v9.0 steady out at ~2.9 and ~2.1. So on average, v9.0 runs 27% faster on this test! Significant changes! Before we celebrate though, it’s worth noting that while these results are useful for illustrating the changes that are coming with Imatest 4.3, you should not assume that all tests will reflect these level of difference. Nor that you will see this level of improvement on your computer. These kinds of results are often highly system and test dependent. Some images and some test setups will see more improvement than this, some will see less. However, overall Imatest 4.3 and on will be that bit faster!