[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10025] Re: 読書会 ( Java 言語で学ぶデザインパターン入門 ) 第 4 回議 事録



福嶋です。
SUN TECH DAYSはSuperBOF参加直前にトラブル発生で… (ToT)

On Sat, 16 Mar 2002 23:50:16 +0900, according to the article
"[jfriends-ml 10016] Re: 読書会 (	Java 言語で学ぶデザインパターン入門 ) 第 4 回議事録"
"TAKAHASHI, Tomohiro" <t_takahashi@xxxxxxxxxxxxxx> wrote:

> > ○問題16-1
> >  4文字以上という表現のとき、
> >  4<=と書くか、3<と書くか?
> >  4と書いた方が4文字MAXというのが明示的で良い。
> >  ならば1桁以上有効の場合は
> >  0<ではなく、1<=と書く?
> > 
> >  いや。0<としておくと、0に存在無しという意味が
> >  明示されるのでこれでよいのではないか。
> 
>   私の場合普段はこのように書いているように気がします。(まちまちですので)
> 
>     int minLength = 1; // 1桁以上有効!!
>     ...
>     String text = textPass.getText();
>     if( text != null && text.length() >= minLength )
>     {
>       ...
>     }

3日目のセッションで、Javaプラットフォームのためのパフォーマンス
チューニング、というのがありました。
ここであげられたテクニックのうち、チューニングの「最後の手段」として
上げていたものの1つに、

・forループのループカウンタは上から下にする(減らしていく)

というものがありました。これは、

  for (int i = 0; i < object.length; i++) {
    :
  }

というよりも、

  for (int i = object.length; i > 0; i--) {
    :
  }

とした方が早いということです。これは、おそらく処理系依存だとおもいますが、
「0との比較」というのは「nとの比較」よりも早く処理できるため、だそうです。
確かに、アセンブリ言語には、0と比較してブランチするような命令がいくつか
あったりします。

しかし、実測してみるとわかりますが、少ない回数だと変わらないかも。


P.S. コンパイルエラーになる問題、ひっかけですね。
     一応答えはあっていましたが、高橋さん×2のつっこみがなかったら
     間違っていたかもしれません。:-)

----------------------------------------
(株)PFU ソフトプロダクト事業部第二開発部
  福嶋 航  w.fukushima@xxxxxxxxxxxxxxx