【问题标题】:Programming languages like C#, Go, Rust, Scala get rewritten to itself, doesn't it make them too slow?像 C#、Go、Rust、Scala 这样的编程语言会被自己重写,这不会让它们太慢吗?
【发布时间】:2020-05-10 00:34:07
【问题描述】:

我正在为动态语言编写解释器只是为了好玩。我有时会看看其他编译器是如何实现某些功能的。

虽然 Rust 或 Haskell 被重写为自己并没有那么糟糕,但我可以想象其他人可能会变得多么缓慢。尤其是像 Golang 这样有 GC 的。

我了解所有的过程,比如快速开发等等..

但是如此沉重的性能打击值得吗?

【问题讨论】:

  • 请注意,您列出的所有语言都是编译的(C# 和 Scala 目标 VM,但这些 VM 肯定不是用 C# 或 Scala 编写的)。编写编译器的语言不会影响编译代码的速度。它所能影响的只是编译本身需要多长时间,但编程语言的选择通常不是编译速度的瓶颈。
  • 您认为在大多数情况下 GC 对编译器毫无意义是正确的,因为编译器的寿命不足以积累太多垃圾。区域分配器从过去的通行证中删除所有内容是一种更好的方法。但这对性能的影响也不大。

标签: performance virtual-machine programming-languages compiler-optimization interpreter


【解决方案1】:

我曾处理过 C# 的性能问题。我查看了包括 GC 在内的一些核心方法的源代码。有时这段代码的一部分是用 C++ 编写的,有时是用汇编程序编写的。我认为使用清晰的 C# 不可能实现相同的性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多