はじめに

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

関連記事

  • Eclipseから実行可能JAR作成とProGuardの難読化の一連の流れEclipseから実行可能JAR作成とProGuardの難読化の一連の流れ Eclipseを使ってJavaアプリケーションを作成して、 それを公開用のjarファイル作成までの流れを簡単に説明します。 まずは、単純に実行可能のJARファイルの作成方法です。 1. Eclipse で「ファイル(F)」→「エクスポート(O)...」を選択する。 2. 「Java」→「実行可能 JAR ファイル」を選んで「次へ(N) >」を選択する。 3. […] Posted in プログラミング
  • 「BufferedImage」の TYPE_4BYTE_ABGR から TYPE_INT_ARGB にする方法「BufferedImage」の TYPE_4BYTE_ABGR から TYPE_INT_ARGB にする方法 Java の BufferedImage は getType() を使うことでタイプを知ることが出来ます。 byte型でABGRの順に記録されている場合は、BufferedImage.TYPE_4BYTE_ABGR int型でARGBが記録されている場合は、BufferedImage.TYPE_INT_ARGB になります。 TYPE_4BYTE_ABGR […] Posted in プログラミング
  • C言語のアドレス演算子の不思議C言語のアドレス演算子の不思議 前々から、C言語のポインタで不思議だったこと。 最適化C 言語 […] Posted in プログラミング
  • Perlは難解 part1Perlは難解 part1 掲示板に宣伝がよく書き込まれるので、 ぷましゃまの掲示板みたいに、特定の単語が含まれなければ書き込めないみたいに改造しようと思ったのですが、 Perlが難しくて、難航中です。 JAGA GOGO […] Posted in プログラミング
  • RSA暗号の解説に出てくる数値の逆数のmodRSA暗号の解説に出てくる数値の逆数のmod RSA暗号に紹介には、必ず次のような式がでてきます。 これ 今日は、この式について解説します。 といっても・・・すみません。言い訳になりますが、 数学科出身ではなく、間違ったこというかもしれません。 それをふまえていただいて・・・解説させていただきます。 まず、m = (p - 1)(q - 1) […] Posted in アルゴリズム
  • JScriptバッチ処理用ライブラリ 20130825公開JScriptバッチ処理用ライブラリ 20130825公開 私のサイトで公開している JScriptバッチ処理用ライブラリのバージョン「20130825」を公開しました。 主な内容は、JavaのString.formatを、JScriptでも使用できるようにするというものです。 JavaのString.formatは、大体はCのsprintfと似ているのですが、もっといろいろできます。 ただ、今回JScriptで使用できる […] Posted in ライブラリ制作