気づいたら、C# が C++ の速度を凌駕している!
5年半程前に書いた、この記事。
C#というか、.NET Framework 4.6 は、 RyuJIT という新しい JIT の導入によって、64-bit 環境での実行が高速化されています。なので、さーて、少しは面白い結果が出るんじゃないかなぁーと。
で、環境は、
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++指定、あるいは、そうせざるを得ないことってありますけど、この結果は予想外です。個人的には、嬉しいです。