なたで日記

いろいろな思ったこと書きますヽ(^▽^ゞ) by natade

Javaの速度のメモ

with 2 comments

Javaの速度を調べてみました。iはint型です。
代入先に書いてある型名は、代入した時の変数の型。
速度を表す値の単位は気にしないでください。相対的に見ていく感じでお願いします。

環境は、
Intel(R) Pentium(R) 4 CPU 3.00GHz 0.99GB RAM
WindowsXP SP3 Java(TM) SE Runtime Environment (build 1.6.0_17-b04)


足し算

int = 1 + i;
90895

int = 10 + i;
201073

long = 1l + i;
267193

long = 10l + i;
268799

float = 1f + i;
306602

double = 1.0 + i;
369100


掛け算

int = 1 * i;
225763

long = 10l * i;
526616

float = 1.0f * i;
369038

double = 1.0 * i;
435841


割り算

int = 1 / i;
1455367

long = 1l / i;
6347530

float = 1.0f / i;
1070948

double = 1.0 / i;
1338557


ビットシフト

int = i >> 1;
271325

int = i << 1;
271606

nd = i >>> 1;
271403


条件文

if(int>-1);
100823

if(int>-1) int++;
268338

if(long>-1) long++;
552858

if(float>-1.0) float++;
334916

if(double>-1.0) double++;
277108


型変換と代入

int = i;
98752

long = i;
202061

float = i;
168658

double = i;
164801


その他

r = d1[i];
g = d2[i];
b = d3[i];
675400

r = (d1[i] >> 16) & 0xff;
g = (d1[i] >> 8) & 0xff;
b = d1[i] & 0xff;
404430

ni = d1[i];
r = (ni >> 16) & 0xff;
g = (ni >> 8) & 0xff;
b = ni & 0xff;
404083

広告

Written by なたで

2009年12月2日 @ 22:03

カテゴリー: program

Tagged with , ,

コメント / トラックバック2件

Subscribe to comments with RSS.

  1. ndって何ですか><それに足し算乗除でintを除くそれぞれについて型変換が発生しているような。。。

    いいね

    智紀

    2009年12月2日 at 23:09

  2. おお。ndとか直しました。はい。型変換発生しています。longが遅いのと、doubleよりfloatのが早いってのと、rgbをまとめてビットシフトで管理した方が早いってのに驚きました。最近のCPUで誰か試した結果教えてください><

    いいね

    なたで

    2009年12月5日 at 22:43


コメントをどうぞ(承認された後に公開されます。メールアドレスの記入は自由ですが、記入した場合でも一般公開されることはありません)

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。