Index: [Article Count Order] [Thread]

Date:  Wed, 18 Sep 2002 14:32:50 +0900
From:  Teruyuki ONO <terono@....jp>
Subject:  [XP-jp:03732] Re: 皆様に質問
To:  extremeprogramming-jp@....jp
Message-Id:  <20020918143235.0563.TERONO@....jp>
In-Reply-To:  <006f01c25eca$0f022a00$640aa8c0@....jp>
References:  <005201c25def$627d9740$df067a85@YAMAGUTI> <006f01c25eca$0f022a00$640aa8c0@....jp>
X-Mail-Count: 03732

小野と申します.

アセンブラ使いなので,実はコンパイラが吐くコードについては
あんまりよくわかっていないのですが(^^;

私が扱う処理系では,
i < VALUE_MAX
に当たる箇所は,レジスタと即値のコンペア命令に置き換わり,
VALUE_MAXのサイズ(1,2,4バイト)によって,
コンペア命令の実行サイクルが変わりますね.

コンペア命令は実際は減算処理を行って,キャリーの発生の有無で
分岐判断をしているからなんですけど.

while(true)
ではループが入るたびにコンペア命令が挟まりますね.

》--------------------------------------------------
》for(int i = 0; i < VALUE_MAX; i++) {
》}
》とか
》while(true) {
》}
》--------------------------------------------------
》とは書かずに
》--------------------------------------------------
》for(int i = (VALUE_MAX - 1); i >= 0 ; i--) {
》}
》とか
》for(;;) {
》}
》--------------------------------------------------
》と書く理由を(解りやすく)説明できる人ですね。

》とりあえず、’アセンブラな先輩’と組まない限りは
》   『ペアプログラミングによる技術レベル向上』
》は難しいでしょうねぇ〜。

私が体験した例では,16bitマイコン機器へのJavaVM実装で
最初,組み込みを良く知らない人が書いたコードを,
16bitマイコン用に最適化(+ハード構造を意識した最適化)という
ソフト改良だけで,実行速度を約4倍にまで高めた人がいます.

こういう人にこそ高年俸を支払うべきだと思いましたです.

-------------------------------------------------------------------
Teruyuki ONO : terono@....jp