如何检测Julia中的类型不稳定函数

如何检测Julia中的类型不稳定函数,julia,Julia,设置:假设我有一个相当详细的软件(Julia),涉及几个模块的交互。我觉得它跑得比应该的慢。通常是函数,即编译器无法提前确定输出类型的函数 问题:如何检测这些类型的不稳定函数 我目前所做的:我使用分析工具,例如@tholy包来检测瓶颈,前提是类型不稳定的函数将出现在这里(由于它们的运行时间过长)。但真正好的是某种调试工具,在例程运行后,它将抛出一个函数列表,其中编译器无法提前确定输出类型。这可能吗 你可以试试探查器说的速度慢的比特 Julia 0.4也有。除了IainDunning的优秀建议外,

设置:假设我有一个相当详细的软件(Julia),涉及几个模块的交互。我觉得它跑得比应该的慢。通常是函数,即编译器无法提前确定输出类型的函数

问题:如何检测这些类型的不稳定函数

我目前所做的:我使用分析工具,例如@tholy包来检测瓶颈,前提是类型不稳定的函数将出现在这里(由于它们的运行时间过长)。但真正好的是某种调试工具,在例程运行后,它将抛出一个函数列表,其中编译器无法提前确定输出类型。这可能吗

你可以试试探查器说的速度慢的比特


Julia 0.4也有。

除了IainDunning的优秀建议外,使用包中的
--track allocation=user
运行Julia并使用
analyze\u malloc
分析结果是快速获得高级概述的好方法。其原理是,类型不稳定会触发内存分配,因此查找具有意外的大量分配的代码行是找到类型不稳定的最严重实例的好方法


您可以找到有关
轨道分配的更多信息,以及更多性能分析选项。

。不知何故,我完全不知道TypeCheck软件包,它也没有出现在我的搜索中。这正是我想要的:-)非常感谢!TypeCheck.jl不再维护(上次更新是在5年前)。你有其他的想法吗?