我想看看我的Julia代码的哪些部分需要花费最多时间来执行的细分.在Python中,cProfile分解了代码调用的每个函数花费的时间; 朱莉娅有类似的东西吗?
分析解释语言(Python,Matlab)与编译语言(Julia)的简单/有用之处存在差异.特别是,您所描述的分析类型需要"检测"代码,这意味着在代码的每一行之前/之后插入额外的语句(读取时钟).这些额外的语句增加了开销,但在缓慢解释的语言中,这种开销通常是可管理的.在像Julia这样的快速语言中,您更愿意尽一切可能避免"破坏"已编译的代码:通常,编译器会进行优化,这些优化会被添加的工具破坏,因此经过检测的代码不会为您提供准确的代码真实性能成本的图片.
如果您真的想使用仪器分析器,那么就有较旧的IProfile,它可以逐行分析运行时间.但是,我建议你考虑使用内置的采样分析器; 它有很多优点,而且我从未遇到过IProfile真正更有用的情况.
采样分析器不会修改您的任何代码:您运行的是与未分析时运行的完全相同的代码.相反,它会定期获取当前执行点的"快照".当同一点一再出现时,它可能是瓶颈之一.这通常是优化代码所需的所有信息.