通过使用十进制数的有理数,Perl 6的性能是否会受到影响
我认为最有用的总体答案是"不,不是真的,但让我详细说明一下".
如果您希望P6只是自动保持十进制计算的合理准确和快速,那么只需使用Rat
s.
如果计算涉及一个或多个P6 Rat
的表达式的整体结果的分母溢出64位,则P6将自动将结果切换为近似值Num
(P6的双浮点实现)以保持合理的性能.
您可以直接使用浮点数据类型的小数.
这产生浮点性能,通常比合理性能更快.
例如,3.141592e0
不是有理/十进制文字,而是Num
/ float文字.
如果使用其中一种内置有理数据类型(有限精度Rat
类;任意精度FatRat
类 ;或基础可参数化精度Rational
角色),那么如果计算符合分母,则对该数据的数字运算将100%准确.
阅读关于理性数据类型的维基百科页面,以了解使用理性类型的性能影响的起点.
有没有人做过基准测试或了解这样做的性能损失?
Larry Wall做出了设计决策,导致小数默认情况下被处理为有理数.他讨论了对#perl6的性能影响.一些有用的搜索:
如果我找到有用基准的链接,我会在以后添加它们.