2006年02月20日

富豪的プログラミングの弊害

最近の富豪的プログラミングに影響されてると、アルゴリズムを考えるのがおっくうになります。
ついつい、簡単に実装できるアルゴリズムを採用してしまいます。
しかし、実装する前に少しだけ考えてください。そのアルゴリズムで本当に問題ないのか。

大半の処理は性能に影響を与えません。しかし、一部の処理は確実に性能に影響を与えます。
その一部の処理だけは、手を抜かずに考えましょう。

実際に筆者がやらかした例を挙げてみます。

メタデータを管理するクラスを作り、メタデータ自身をファイルで保管していました。 データ量が膨大になるのは自明でしたので、データ自体の保存、読み込み処理は、当然、性能を意識して作成。 テストは何事もなく過ぎ、リリースしてしばらくのこと。

遅くて使えないと、顧客からクレームがきました。 顧客環境を調査したところ、メタデータの検索で時間がかかっている模様。 メタデータはたかだか100件程度だろうとタカをくくって、メタデータの探索は逐次探索としていました。 が、実際の運用環境では10000件を超えており、一件のメタデータの探索に、平均10ミリ秒消費していました。 ということは、全件の処理は10ミリ秒×10000件=100秒となります。 一回の処理に100秒かかるようでは、遅いといわれてもしょうがありません。 メタデータだから、そんなに件数がないとサボった罰です。逐次探索からハッシュ探索に切り替えたところ、1秒かからずに処理が完了し、問題は解決しました。

おかげで、顧客からイヤミを言われ、肩身の狭い思いをしましたとさ。

気に入った方はこちらもクリック。人気blogランキング



posted by まる at 23:42| Comment(0) | TrackBack(0) | プログラマ Chips | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス: [必須入力]

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。