パフォーマンス

2009年6月12日

ネタ元はここ
http://blogs.wankuma.com/ognac/archive/2009/06/09/174556.aspx

何か言い訳をされる場合に、パフォーマンスというのはかなり使われる話です。
上記url含め、よく聞くのは
・(RDBで)カラム横持ち(って言うの?)のほうが速い
・StringよりStringBuilderのほうが速い
・正規表現は重い
・XMLは重い
・ガベージコレクタは意図しないところで重くなる
など。ただ、不思議なのはこういう人たちでも、
・ハッシュは重い (配列に比べて)
・RDBは重い (ランダムファイルに比べて)
・オブジェクト指向言語は重い (Cに比べて)
・仮想記憶(ページング)は重い(RAMのみに比べて)
ので使うべきでない、と主張する人はとても少ない。

結局、まずパフォーマンス云々より先に、その系の理にかなった設計をしろってことだと思うんですよね。RDBだったらがんがん正規化するし、オブジェクト指向だったらどしどしnewする。レコードが分かれたらパフォーマンスが遅いよねとかnewってmallocだからメモリ確保や解放に時間とリソースが云々とか、まずはそんなの無視(?)で。系の理にかなった実装を心がける。

そしてその上でパフォーマンスが必要な場合はチューニングする。場合によってはコードを書き換えるということでいいんじゃなかろうか。

まあこういうと、
・最初から速いコードが書けるんだったらそのほうがいいじゃないか
・お客さんにとっても、コードの内容よりも実行速度の方が重要だ
とかいうんだろうけど、そういうつっこみを入れる人ほど、設計が崩れててかつ遅く危ないコードを(本人は速いつもりで)作っていたりすることが多い。必要のない表の結合をしていたり、forループの中でひたすらreallocしていたり…等々。もちろんこういうのはパフォーマンス云々以前の問題なわけで。

なので、処理系の理論に忠実であることが基本としてあって、その上でそれでは目的が達成できない場合に例外について検討するべきではないかと思う。






カテゴリー: IT / テクノロジー, 与太話

Follow comments via the RSS Feed | Leave a comment | Trackback URL

コメントを投稿する

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


«   »
 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org