language-features - 使用大数的开销

标签 language-features language-design

当涉及数字时,我遇到了关于是否使用我的语言中的大数字作为默认数据类型的问题。我自己对此进行了评估,并将其简化为一个方便、舒适与性能的问题。该问题的答案取决于未优化的程序对性能的影响有多大。

在 fixnum 或 integer 就足够的地方使用 bignum 的开销有多小?它最多可以有多小?什么样的实现达到最小的开销,它们会导致什么样的额外权衡?

如果我将我的语言默认设置为 bignums,我希望对整体语言性能的结果有什么样的影响?

最佳答案

你或许可以看看 Lisp 是如何做到的。它几乎总是完全 正确 做事,并在必要时隐式转换类型。它有 fixnums(“正常”整数)、bignums、ratios(减少的适当分数表示为一组两个整数)和 floats(不同大小)。只有 float 有精度误差,并且具有传染性,即一旦计算涉及到 float ,结果也是 float 。 “Practical Common Lisp”对此行为有很好的描述。

关于language-features - 使用大数的开销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/270386/

相关文章:

f# - F# 的 future 路线图

swift - 在 Swift 中创建一个 "forCount"控制结构

c# - C# 中是否有多重初始化的语法快捷方式?

java - JVM 实现的语言(如 Jython)是在底层使用 Java 还是使用 JVM native ?

java - Java 的 Arrays.asList() 是否违反了 OOP?

java - Java 7 中的链式调用?

language-agnostic - 你最喜欢的语言如何处理深度递归?

c++ - 为什么 std::string 的 const 访问器返回一个引用?

scala - 选择当前语法 `import foo.bar.{Baz => _}` 以从导入中排除某些内容的原因是什么?

对象和字符串之间的 JavaScript 相等性