为什么vb.net这么快?

Bla*_*Cap -5 .net vb.net

我用几种语言编写了相同的控制台应用程序.应用程序向用户询问一个数字,并从1到该数字进行计数,在控制台的单独行上打印每个数字.我实际上期望vb.net在编程语言中变得最糟糕,让我好奇的是它没有,它实际上是最快的.

VB.Net - 运行VS调试器:

Sub Main()
    Console.Write("Give me a number, any number: ")

    For i = 1 To CInt(Console.ReadLine)
        Console.WriteLine(i)
    Next

    Console.ReadLine()
End Sub
Run Code Online (Sandbox Code Playgroud)

C++ - 运行VS调试器(比VB慢大约5倍):

#include <iostream>
using namespace std;

int main() {
cout << "Give me a number, any number: ";

int number; cin >> number;
cout << '\n';

for (int i = 1; i <= number; i++) cout << i << '\n';

while (true) {}
}
Run Code Online (Sandbox Code Playgroud)

Haskell - 从控制台编译并运行(仅比VB略慢):

import System.IO
import Control.Monad 

main = do
    putStr "Give me a number, any number: "
    hFlush stdout

    input <- getLine
    mapM print [1..read input]

    return 0
Run Code Online (Sandbox Code Playgroud)

Javascript - 在firefox中运行firebug(比VB慢很多):

for (i = 0; i<100000; i++){ console.log(i); }
Run Code Online (Sandbox Code Playgroud)

Befunge - 使用chrome/javascript 运行这个网站(比firefox快,但仍比vb慢)

&1-0>1+:.134*+,\:#v_@
    ^          \-1<
Run Code Online (Sandbox Code Playgroud)

那么简单地说,是什么让vb解决方案比其他语言更快?

Bol*_*glu 5

你为什么期望VB.NET最慢?编译完成后,VB.NET程序就是一个CIL程序,与ac#程序相同.在.NET JIT编译器编译之后,它被编译为本机代码,并进行了相当优化.Javascript是一种解释型语言,firebug是一个解释器/调试器,它会降低代码的速度,因此您可以跟踪调试信息.我希望C++调试器也是如此.当你运行没有调试器的c ++程序时,你得到的结果会变慢吗?