【发布时间】: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