Info

この質問は閉じられています。 編集または回答するには再度開いてください。

Executing one function slows down built-in functions in another independent function

1 回表示 (過去 30 日間)
Tien-Ju Yang
Tien-Ju Yang 2016 年 6 月 3 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
Hi,
I encounter a strange speed problem. The problem is that executing one function slows down built-in functions in another independent function. Assume there are two functions, funcA() and funcB(). When I execute only funcB(), it takes 10 seconds. When I execute first funcA() and then funcB(), funcB() now takes 50 seconds. Moreover, if I first type "funcA()" in the command window and run it, and then type "funcB()" in the command window and run it, funcB() takes only 10 seconds. If I write a script as the following: " funcA(); funcB(); " and run this script, funcB() takes 50 seconds. I tried to insert "clear", "clear all" in between. funcB() still takes 50 seconds.
I used "profile" to find what is the part causing the slow down. It turns out some built-in functions become much slower, such as "max" and "bsxfun".
funcA() and funcB() uses different inputs and have no output. I also used breakpoints to check the I/Os of the slow built-in functions. The I/Os are exactly the same across all experiments.
I also used "top" to check the memory usage, but in all experiments I have a lot of free memory.
Does anyone have an idea about what is going on or how to debug this?
Thanks!
  2 件のコメント
Matt J
Matt J 2016 年 6 月 3 日
編集済み: Matt J 2016 年 6 月 3 日
Were any of these tests done inside a function mfile as opposed to the command line or scripts? It's important to test that because the JIT is only active inside mfunctions, I believe.
Walter Roberson
Walter Roberson 2016 年 6 月 3 日
JIT is active inside scripts as of R2016a.

回答 (0 件)

この質問は閉じられています。

タグ

製品

Community Treasure Hunt

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

Start Hunting!

Translated by