大量的数组边界检查会降低速度,对于二维数组尤其如此。有没有办法在 F# 中编写不安全的代码块?
我不是一个F# http://cs.hubfs.net/blogs/f_team/archive/2006/08/15/506.aspx程序员,但据我所知,它似乎没有unsafe http://msdn.microsoft.com/en-us/library/dd233249.aspx关键词。
通过将二维数组转换为一维数组,您可能会获得性能提升。
建议 5:在我们解决这个问题之前,我
建议 .NET 用户做什么
许多 C++ 数值程序员这样做:
写一个类来实现你的
n 维数组。这将是
表示为一维数组,
并且相关的访问器将
将 n 个索引转换为 1 通过
适当的乘法。我们
几乎肯定不会消除
边界检查一维数组,
但至少我们只会做一项检查!
CLR 中的数组边界检查消除 http://blogs.msdn.com/b/clrcodegeneration/archive/2009/08/13/array-bounds-check-elimination-in-the-clr.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)