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

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 件)

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

製品

タグ

質問済み:

2016 年 6 月 3 日

閉鎖済み:

2021 年 8 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by