電電高専生日記

C++とJavaScriptの実行速度を比較してみました

2015/06/26 20:33

前置き

C++JavaScript実行速度を比較してみました。
なんでそんなことをしたかというと、卒研で組むプログラムの言語をどちらにしようかと悩んでいたことから始まります。
私の研究はシミュレーションが主なので、高速に動作するC++を選ぶのがどう考えてもベターなのですが… 出来ることなら、自分が(C++よりは)使い慣れているJavaScriptでプログラムを書きたかったのです。
しかしまぁJavaScriptで書くメリットなんてそれ以外何もないし、卒研の時間はたっぷりあるので多少面倒でもC++で書くべきだろうとは思っていました。で、実際どれくらい速いのかなと思い、実際に体感してみたいと思いました。
1000万回の単純for文ループを、JavaScriptをWEBブラウザで実行した場合、JavaScriptをコマンドプロンプトで実行した場合、C++をVisual Studioでビルド実行した場合のそれぞれについて計測しました。

JavaScript ①:WEBブラウザで実行した場合

Chrome(43.0.2357.130m)のJavaScriptコンソールで、以下のプログラムを実行した。

var begin = new Date(); //計測開始
for (var i=0; i<10000000; i++); //一千万回ループ
var end = new Date(); //計測終了
var dt=end-begin;  //一千万回ループに掛かった時間
console.log(dt);

結果:10735 (ms)

JavaScript ②:コマンドプロンプトで実行した場合

Windows7(Home Premium)のコマンドプロンプトで、以下のプログラムを実行した。

var begin = new Date(); //計測開始
for (var i=0; i<10000000; i++); //一千万回ループ
var end = new Date(); //計測終了
var dt=end-begin;  //一千万回ループに掛かった時間
WScript.Echo(dt);

結果:1388 (ms)

C++ :Visual Studioでビルド実行した場合

Visual Studio(Express 2010 C++)のWin32 コンソールアプリケーション開発(空のプロジェクト)で、以下のプログラムを実行した。

#include <stdio.h>
#include <time.h>
void main(){
	clock_t begin = clock(); //計測開始
	for (int i=0; i<10000000; i++); //一千万回ループ
	clock_t end = clock(); //計測終了
	int dt = ((double)(end - begin))/CLOCKS_PER_SEC*1000; //一千万回ループに掛かった時間
	printf("%d\n", dt);
}

結果:38 (ms)

まとめ

:10735 (ms)
:*1388 (ms)
:***38 (ms)

やっぱC++は桁外れに速いですね。
いいコンピュータを使えばJavaScriptの実行速度ももっと上がるかもしれませんが、C++に比べれば大して変わらないようなものかもしれません。
というわけで今はC++で卒研に使うプログラムを組んでます。

  • このエントリーをはてなブックマークに追加

最新記事

コメント(4)

19高橋 2015/08/02(日) 14:36:11

ちなみに「JavaScriptコンソール」はそのブラウザの実行速度ですね。
できれば、それを Node.jsで試してみてください^^

20elkosendiary 2015/08/16(日) 17:22:37

アドバイスありがとうございます(^^)

21名無しさん 2015/09/03(木) 17:49:48

CでなくC++を使うということで、クラスを使うなら面倒でしょうが
JavaScriptで書いたコードをCかC++にコンバートするという手も(型面倒ですが)
C++だと全部初期化時点で代入してあればAutoで受けれるので便利です

もしかしたらちょっとの手間で出来るかもしれないです

23elkosendiary 2015/09/05(土) 17:07:55

ありがとうございます(^^)
しかし、既にC++でプログラムを組み終わりました。
あまり大規模なプログラムでもないので、クラスを書くことはなかったです。
アドバイスありがとうございました。




プロフィール

名前:elkosendiary

性別:男

生年:1995年


2011年4月 高専入学
2016年3月 高専卒業
2016年4月 大学編入学
2018年3月 大学卒業予定

にほんブログ村 大学生日記ブログ 理系大学生へ
にほんブログ村

カテゴリ
Adsense
月別アーカイブ
ブログ内検索

おすすめ記事

「高専大学編入ログ」を作成しました

自作ゲーム「Defend PortMoresby!」バージョン3

【改良版】 RaspberryPiで作ったカメラ付き戦車ラジコン