私の質問はばかげているように見えるかもしれませんが、なぜこの非常に単純なコードでパフォーマンスが向上するのか、非常に興味があります。
アセンブリコードは次のとおりです。
__asm {
    mov eax, 0
    mov ecx, 0
    jmp startloop
    notequal:
    inc eax
    mov ecx, eax
    sub ecx, 2
    startloop:
    cmp eax, 2000000000
    jne notequal
};
これはCコードです:
long x = 0;
long ii = 0;
for(; ii < 2000000000; ++ii)
{
    x = ii - 2;
};
C コードは、i5 2500k マシンで完了するのに約 1060 ミリ秒 (リリース ビルドで) かかり、アセンブリは 780 ミリ秒で終了します。速度が最大 25% 向上します。25% の差が大きいため、なぜこの結果が得られるのかわかりません。コンパイラは、私が書いたものと同等のアセンブリ コードを生成するほどスマートではありませんか?
ところで、MSVC 2010 を使用しています。
ありがとう
これは、MSVC によって生成されている (asm) コードです。
$LL3@main:
; Line 36
    lea esi, DWORD PTR [eax-2]
    inc eax
    cmp eax, 2000000000             ; 77359400H
    jl  SHORT $LL3@main
この場合、リー命令は何をしますか?
更新 2
皆様、本当にありがとうございました。Nehalem xeon cpu でこのコードをテストしたところ、結果は同じです。理由は不明ですが、asm コードは Sandy ブリッジでより高速に実行されるようです。