人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

real0m26.795s
user0m26.754s
sys0m0.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

real0m1.698s
user0m2.134s
sys0m0.217s
```

●質問者: onody
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rsc

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

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

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


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

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ