極悪です。
第8号が出ていたので読みましたが、内容があんまりなので
メールを書きました。が「はじめまして、極悪と申します」
と書くのがめんどくさくて、またやめてしまいました。
使ってるフリーソフトで「こうなってるとウレシイです」
みたいな建設的なメールは書きやすいのですが、この手の
批判的な内容は逆に自分の知識も問われるのでなかなか出せ
ないっす。
こんにちは。
『初心者のためのプログラムを10倍早くする方法メール
マガジン』第8号の内容で気になる点があります:
>今回はループの中の処理を高速化するテクニックの続編として、
>メンバ変数へのアクセスを減らす方法をご紹介しました。
>
>メンバ変数へのアクセスにはthisを使わなければいけないので、
>コストがかかってしまうということでしたね。
>
>今回のテクニックはオブジェクト指向プログラミングでは頻繁に
>使うと思います。
>いろいろ応用してみてください。
この結論はピントがずれているのではないでしょうか。
今回の例はループの中で毎回「定数」nDatas を求めるな、ループ
に入る前に計算して結果を再利用しろ、ということだと思います。
例えば GetLength の中身が return 123; の一文だけだったり
すると処理時間に有意差は出ません。ということはメンバ関数も
オブジェクト指向も関係なくて、定数や結果の分かっている if
をループの中でいちいち実行するな、という定石のひとつを説明
しているにすぎません。
この場面でベンチマークに差が出たのをメンバ関数のせいにするの
はピントがずれています。説明を読むとメンバ関数のアクセスが
原因で遅くなる可能性は確かにある気がするので、別の例をお願い
します。
--
極悪, FZH01112 at nifty.com
http://hpcgi1.nifty.com/dune/gwiki.pl?