How to Make m script run faster?
9 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dharaneedharan Arumugam
le 9 Déc 2020
Commenté : Dharaneedharan Arumugam
le 26 Mar 2021
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.
0 commentaires
Réponse acceptée
John D'Errico
le 9 Déc 2020
Modifié(e) : John D'Errico
le 9 Déc 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.
Plus de réponses (1)
Jonas
le 9 Déc 2020
Modifié(e) : Jonas
le 9 Déc 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.
Voir également
Catégories
En savoir plus sur Downloads dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!