How to Make m script run faster?

조회 수: 27 (최근 30일)
Dharaneedharan Arumugam
Dharaneedharan Arumugam 2020년 12월 9일
댓글: Dharaneedharan Arumugam 2021년 3월 26일
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.

채택된 답변

John D'Errico
John D'Errico 2020년 12월 9일
편집: John D'Errico 2020년 12월 9일
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.

추가 답변 (1개)

Jonas
Jonas 2020년 12월 9일
편집: Jonas 2020년 12월 9일
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.
  댓글 수: 1
Dharaneedharan Arumugam
Dharaneedharan Arumugam 2021년 3월 26일
Thanks for the support. I will try to improve it.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Downloads에 대해 자세히 알아보기

제품


릴리스

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by