当涉及数字时,我遇到了关于是否使用我的语言中的大数字作为默认数据类型的问题。我自己对此进行了评估,并将其简化为一个方便、舒适与性能的问题。该问题的答案取决于未优化的程序对性能的影响有多大。
在 fixnum 或 integer 就足够的地方使用 bignum 的开销有多小?它最多可以有多小?什么样的实现达到最小的开销,它们会导致什么样的额外权衡?
如果我将我的语言默认设置为 bignums,我希望对整体语言性能的结果有什么样的影响?
最佳答案
你或许可以看看 Lisp 是如何做到的。它几乎总是完全 正确 做事,并在必要时隐式转换类型。它有 fixnums(“正常”整数)、bignums、ratios(减少的适当分数表示为一组两个整数)和 floats(不同大小)。只有 float 有精度误差,并且具有传染性,即一旦计算涉及到 float ,结果也是 float 。 “Practical Common Lisp”对此行为有很好的描述。
关于language-features - 使用大数的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/270386/