気づいたら、C# が C++ の速度を凌駕している!

5年半程前に書いた、この記事。

espresso3389.hatenablog.com

C#というか、.NET Framework 4.6 は、 RyuJIT という新しい JIT の導入によって、64-bit 環境での実行が高速化されています。なので、さーて、少しは面白い結果が出るんじゃないかなぁーと。

blogs.msdn.microsoft.com

で、環境は、

Windows 10 Pro Insider Preview Build 14332
.NET Framework 4.6.1
Visual Studio 2015 Update 2
CPU: Intel Core i7-3770S 3.1GHz
Memory: 32GB

という環境です。ここで、実行してみました。

まずは、C#版。

3091
2282

上が配列。下が unsafe コード。unsafe が速くなってます。74%ぐらいの時間で終わるようになってる。
unsafe コードを書くモチベーションが上がります。better C として考えると、モチベーション上がりますねー!

さて、C++版。

2344

んん?あれっ?実行するプログラム間違った?
いや、間違ってない。

遅いじゃないですかー。C#に負けてるじゃないですかー。これ、64-bit 版です。
32-bit だったら?

2343

変わんねー。

C++ 敗北。
もう、C++使う理由がなくなる感じなのでは・・・。

仕事によっては、C++指定、あるいは、そうせざるを得ないことってありますけど、この結果は予想外です。個人的には、嬉しいです。