小野と申します.
アセンブラ使いなので,実はコンパイラが吐くコードについては
あんまりよくわかっていないのですが(^^;
私が扱う処理系では,
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