Есть ли хороший способ профилировать код в Mathematica? Я хотел бы иметь возможность рекурсивно (т.е. Если я скажу f[a_] := b[a]
, то Profile[f[1]]
должен давать почти тот же результат, что и Profile[b[1]]
), но я соглашусь на то, что смогу сделать что-то вроде приложения Timing
для каждого соответствующего подвыражения. Было бы неплохо, если бы у меня не было особых случаев, таких как Module
, но я хотел бы, например, Profile[Module[{x=1+2},x!]]
дать мне вывод вроде
Time Expression Result
0 1 1
0 2 2
0 1 + 2 3
0 x$1234 3
0 x$1234 ! 6
0 Module[{x=1+2},x!] 6
6