-5

同じコンソール アプリケーションを複数の言語で作成しました。アプリケーションはユーザーに数値を尋ね、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

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) {}
}

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

Javascript - firefox で firebug を実行します (VB よりかなり遅い):

for (i = 0; i<100000; i++){ console.log(i); }

Befunge - chrome/javascript を使用してこのWeb サイトを実行します (firefox よりも高速ですが、vb よりも低速です)。

&1-0>1+:.134*+,\:#v_@
    ^          \-1<

簡単に言えば、vb ソリューションが他の言語よりも高速である理由は何でしょうか?

4

2 に答える 2

6

VB.NET が最も遅いと思われるのはなぜですか? コンパイルされると、VB.NET プログラムは ac# プログラムと同じ CIL プログラムになります。そして、.NET JIT Compiler がコンパイルした後、ネイティブ コードにコンパイルされ、非常に最適化されます。Javascript はインタープリター言語であり、firebug はインタープリター/デバッガーであるため、コードの速度が低下するため、デバッグ情報をトレースできます。C++ デバッガーでも同じことが当てはまると思います。デバッガーなしで c++ プログラムを実行すると、結果が遅くなりますか?

于 2013-08-01T22:52:36.380 に答える
-1

c++ は最適化を要求され、デバッガーが接続されていないリリースで実行されると遅くなります。理由は、c++ はキャッシュされた言語ではないため、すべてのステップをすべて実行する必要があるためです。CIL .Net Framework と比較して、同じ操作であることを認識し、違いを解決します。さらに、c++ は古い言語です。

于 2013-10-22T02:07:53.617 に答える