有名な話。

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

結構有名な話だが、最近のJ2SDKでも有効なのか試してみた。

public class test1{
 public static void main(String args[]){
  for(int i=0; i<10; i++){
  }
 }
}

見たまんまの意です。
コンパイルして、できたクラスファイルを逆コンパイルすると以下の様になる。
メイン関数の呼び出しの部分のみ抜粋。

0 iconst_0
1 istore_1
2 goto 8
5 iinc 1 1
8 iload_1
9 bipush 10
11 if_icmplt 5
14 return
合計命令8セット。

次に、同じ意味を成すコードを以下の用に書いてみた。

public class test1{
 public static void main(Strin args[]){
  for(int i=9; i>=0; i--){
  }
 }
}

上記をコンパイルし、逆コンパイルした結果がコレ。
上と同様にメイン関数の呼び出しの部分のみ抜粋。

0 bipush 9
2 istore_1
3 goto 9
6 iinc 1 -1
9 iload_1
10 ifge 6
13 return
合計命令7セット。

命令セット数を1つ削減できる。・・・けど何故?
数の大きいループだと効果ありそうです。
もっとも中でループ変数を使うと命令セット数が代わるのかも知れませんが。

(Visited 1 times, 1 visits today)
  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*

街中を歩いて

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

ゆかたの女性を見かけ。。。
チャイナドレスの女性を見かけ。。。
アオザイの女性を見かけ。。。
一言。
すばらしい。*1

*1:こういう発言が誤解を招くのかなぁ。。。

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

SNSでもご購読できます。

コメントを残す

*

紳士服の○○○

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

今週末に備え、ネクタイとか購入。
日頃Tシャツ、Gパンなので、こういうときに非常に困る。
微妙な年のお姉さまにいろいろ相談しながら選んでもらう。何かと妙に話があったな。。。。

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

SNSでもご購読できます。

コメントを残す

*

今日の一言

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

頭痛が治らないです。
・・・肩こりもすごいです。
ということで、

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

SNSでもご購読できます。

コメントを残す

*