【发布时间】:2021-01-08 08:18:54
【问题描述】:
我有一些数百行长的 Julia 函数,我想对其进行分析,以便我可以着手优化代码。
我知道 BenchmarkTools 包允许使用@btime 或@benchmark 测量函数的整体执行时间和内存消耗。但是这些函数并没有告诉我瓶颈在函数内部的什么位置。所以我的第一步必须是使用一些工具来识别代码的哪些部分是慢的。
例如,在 Matlab 中,有一个非常好的内置分析器,它运行一个脚本/函数,然后报告每一行代码所花费的时间。类似地,在 Python 中有一个名为 line_profiler 的模块,它可以生成逐行报告,显示函数的每一行花费了多少时间。
我正在寻找的只是一份逐行报告,显示每行代码花费的总时间以及特定代码段被调用的次数。
Julia 中有这样的功能吗?内置或通过某些第三方软件包。
【问题讨论】:
-
是的,它有一个分析模块,此链接中还有内置分析的 IDE - docs.julialang.org/en/v1/manual/profile
-
@AWebb 但是可以将 Profile.print() 的输出格式化为显示每行代码所花费的时间吗?从我在他们的示例中可以看到,从 Profile 获得的打印输出没有显示每行花费的时间
标签: julia