How to Make m script run faster?

30 views (last 30 days)
Hi,
I am working on a big model, I have a .m script which adds relative folders path in matlab and imports variables into workspace by calling another .m file.
The problem is it taking a lot of time to complete, more than 80s .
Is it possible to bring it down to 10s.

Accepted Answer

John D'Errico
John D'Errico on 9 Dec 2020
Edited: John D'Errico on 9 Dec 2020
Yes. And well, No.
Just wanting your code to run more quickly is not going to work. There is no magical way to just automatically make your code run faster. If there was, surely it would be used all the time. Do you think they would have already implemented things like an 8 times speed bump, if it was trivial?
Can you make your code run more quickly? Well, yes. You can learn to use the profile tool.
help profile
or
doc profile
This will tell you where your code has bottlenecks. Then you learn to write better code, to get around the time problems. You can very often acheive 10x or even 100x speed improvements. But that means you need to learn to write better code. AND you need to learn where to focus your efforts.
Can you make you code run 8 times as fast just by some magical incantations? NO. There is no simple fix. In SOME cases, you can enhance the speed using the GPU, or by learning to use the parallel processing toolbox (IF you have it.) That will not always be the case however. And it WILL require you to learn a lot, and to essentially change your code in some ways, at least how you use that code.
Or, you can buy or rent a faster, bigger computer. Since you want it to be 8 times as fast, I would recommend a computer that is roughly 8 times as fast. They get expensive. Money always works, as long as you have enough of it to throw around. Feel free to send some my way. :)
So start by learning where your code runs slowly. And learn to write better code in those parts. That will almost always give you huge speed improvements, because if you are a relatively new user, this also means your code is written extremely inefficiently.

More Answers (1)

Jonas
Jonas on 9 Dec 2020
Edited: Jonas on 9 Dec 2020
You should run the code Profiler to get information on which specific pieces of code take a long time to execute. This way, you can try to improve the performance by tackling the specific functions which take a long time.
A more rudimentary way of profiling your code, is by using the tic toc functions to know how long the code in between the tic/toc took to execute.

Categories

Find more on Historical Contests in Help Center and File Exchange

Products


Release

R2016b

Community Treasure Hunt

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

Start Hunting!