Azzera filtri
Azzera filtri

How to Make m script run faster?

15 visualizzazioni (ultimi 30 giorni)
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.

Risposta accettata

John D'Errico
John D'Errico il 9 Dic 2020
Modificato: John D'Errico il 9 Dic 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.

Più risposte (1)

Jonas
Jonas il 9 Dic 2020
Modificato: Jonas il 9 Dic 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.

Categorie

Scopri di più su Downloads in Help Center e File Exchange

Prodotti


Release

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by