【发布时间】:2016-07-18 19:22:56
【问题描述】:
我想编写一个以矩阵为输入的函数。这是复杂项目中频繁的低级调用,因此使该函数尽可能快地具有潜在的严重性能影响。因为速度对我来说非常重要,所以我使用FixedSizeArrays 中的类型,因为我知道这将节省内存使用量。但我经常知道输入矩阵的某些属性,但我不确定我是否在优化使用它。
这是一个简单的例子。想象一下我想让以下功能尽可能快:
using FixedSizeArrays
function foo( input::Mat )
# NB: Mat is the FixedSizeArrays matrix type
return 2 * input
end
显然,这是一个微不足道的例子,但这不是重点。关键是我对矩阵input 的维度有所了解:它总是只有两列,我总是可以在运行时指定行数。这似乎是可以传递给编译器以使我的代码更快的信息。我可以将它作为定义input 大小的参数传递吗?这是一个不起作用的示例,但应该让您对我正在尝试做的事情有所了解。
function bar( int::N, thismat::Mat{N,2,Float64} )
return 2 * thismat
end
我可以做这样的事情吗?如果可以的话,这还能用吗?也许 FixedSizeArrays 已经做了所有可以做的事情。谢谢你的想法!
【问题讨论】:
标签: performance julia fixed-size-types