在Julia中使用@code_warntype

amr*_*ods 6 types julia

当试图编写类型稳定的代码,检查使用时@code_warntype,我应该只担心没有任何AnyUnion在变量部分或我还应该检查正文部分?

tho*_*oly 9

根据您的julia版本,@code_warntype有时可以标记某些无害的表达式.通过一些练习,您可以轻松识别这些表达式(例如,它们通常与模块/名称查找有关).

正如Reza所说,简单的路径是查看变量部分和函数的返回类型; 如果你没有看到任何类型不确定的数量(s AnyUnions),你可能没有什么可担心的.如果你想深入挖掘,开始尝试理解它正在萎缩的身体表情.对于学习,一个有用的事情是将结果与获得的结果进行比较track-allocation,因为真正的类型不稳定性与内存分配有关.

但是,我认为问题@code_warntype已经在当前的主人身上得到了解决,所以在任何情况下,julia的下一个版本都应该更容易解释.


Rez*_*lan 5

通常,没有必要在身体部位搜索更多的所谓非叶子类型,因为code_warntype主要任务是为您完成这项工作(请检查源代码)。但是身体部位有更多关于该非叶的使用地点和使用方式的信息。

参考文献:

  1. code_warntype(f, types) 在文档中。
  2. code_warntype(f, types) 资源。