c言語、javaの実行速度について、解決できない疑問があります。


以下の2つを実行したところ、
javaが圧倒的に速かったのですが、
この差はなぜなのでしょうか。

ソースは他のサイトを参考にしました。
http://takenaka-akio.org/etc/benchmark/

実行環境は、MacBook Pro 2.2GHz Core i7 メモリ16GBです。


## Cの場合

```c
#include <stdio.h>

int main(int argc, char *argv[]) {

int rep = 1000000; // 足し算の回数
int n = 10000; // 変数の数(配列の要素数)

int x[10000] = {};

for (int j = 0; j < rep; ++j) {
for (int i = 0; i < n; ++i) {
x[i] += 1;
}
}

}
```
```bash
$ clang main.c -o main.out
$ time ./main.out

real 0m26.795s
user 0m26.754s
sys 0m0.028s
```


## javaの場合

```java
package com.company;

import java.util.Arrays;

public class Main {

public static void main(String[] args) {


int rep = 1000000;
int n = 10000;

int[] x = new int[n];
Arrays.fill(x, 0);

for (int j = 0; j < rep;) {

for (int i = 0; i < n;) {
x[i] += 1;
i++;
}

j++;
}


}
}

```

```bash
$ time java com.company.Main

real 0m1.698s
user 0m2.134s
sys 0m0.217s
```

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/11/09 16:10:03

回答1件)

id:rsc96074 No.1

回答回数4503ベストアンサー獲得回数437

 こちらは参考になるでしょうか。引用部前後を参照下さい。(^_^;
●俺の言語がこんなに遅いわけがない!? ?C, Java, PHP, Python, Rubyによるプログラミング言語 速度比較? | 株式会社メイプルシステムズ

どうやら Java はデフォルトで最適化 + JITが有効のようです。

http://maplesystems.co.jp/blog/all/programming/2015.html

id:onody_onody

Cについて最適化オプションを指定したところ、java以上のパフォーマンスがでました。 最適化オプションについて詳しく調べてみたいと思います。ありがとうございました!

2014/11/03 12:35:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません