Performance 像C#、Go、Rust、Scala这样的编程语言会被重写为自己的语言,而不是';这不是让他们太慢了吗?

Performance 像C#、Go、Rust、Scala这样的编程语言会被重写为自己的语言,而不是';这不是让他们太慢了吗?,performance,virtual-machine,programming-languages,compiler-optimization,interpreter,Performance,Virtual Machine,Programming Languages,Compiler Optimization,Interpreter,为了好玩,我正在为一种动态语言编写一个解释器。我有时会看看其他编译器是如何实现某些功能的 虽然把Rust或Haskell改写成自己并不坏,但我可以想象其他人可能会变得多么慢。特别是那些有GC的,比如Golang 我了解所有的过程,比如快速发展等等 但是如此沉重的性能打击值得吗?我在C#上处理过性能问题。我回顾了一些核心方法的源代码,包括GC。有时,代码部分是用C++编写的,有时是汇编语言编写的。我认为使用clear C#不可能达到同样的性能 请注意,您列出的所有语言都是编译的(C#和Scala目

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

虽然把Rust或Haskell改写成自己并不坏,但我可以想象其他人可能会变得多么慢。特别是那些有GC的,比如Golang

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


但是如此沉重的性能打击值得吗?我在C#上处理过性能问题。我回顾了一些核心方法的源代码,包括GC。有时,代码部分是用C++编写的,有时是汇编语言编写的。我认为使用clear C#不可能达到同样的性能

请注意,您列出的所有语言都是编译的(C#和Scala目标VM,但这些VM肯定不是用C#或Scala编写的)。编译器使用的语言不会影响编译代码的速度。它所能影响的只是编译本身所需的时间,但在编译速度方面,编程语言的选择通常不是瓶颈。您可以正确地假设,在大多数情况下,GC对编译器来说毫无意义,因为编译器的寿命不够长,无法积累太多的垃圾。一个区域分配器将过去的过程中的所有内容进行核化是一个更好的方法。但这也不是一个巨大的性能冲击。