image thumbnail

Performance in object-oriented matlab code

version 1.2.0.0 (22.1 KB) by Dimitrios Korkinof
A very simple example to demonstrate an observation of mine regarding the use of classes in matlab.

647 Downloads

Updated 18 Apr 2013

View License

This is a very simple demo made solely for the purpose of demonstrating the high overhead that seems to be induced when using object-oriented programming in Matlab. The problem is especially intense when having classes containing a lot of data and one or more functions in the class need to be frequently
called.

I have implemented 2 distinct scenarios using classes. According to the first (C1), the class contains a large array, let's say 200x200. A function member of the class putting a random number in one element at a time. In the second scenario (C2), the class member function is not modifying the large array, but puts random value in another variable member of the class.

In both cases we call the class member functions 40.000 times and time the code. We also time the actual duration of the core operation without the use of functions or classes, in order to measure the overhead induced in each case.

Fortunately, there is an alternative to using classes in Matlab. The construction is a form of class consisted of nested functions, the handlers to which are made externally available. Of course, inheritance is not available in this case, however this construction is similar enough.

Is there something I am missing here? Is this normal or expected? If not, could something have been done to boost performance?

I am looking forward to your comments!

Cite As

Dimitrios Korkinof (2021). Performance in object-oriented matlab code (https://www.mathworks.com/matlabcentral/fileexchange/41349-performance-in-object-oriented-matlab-code), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2013a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

ClassPerformance/