玄録

玄録は、秀玄舎の事例を通した、
実践研究の成果をご報告する不定更新の
ビジネスレポートです。

性能問題の原因と対策

性能問題の原因と対策(プログラム)

2008.06.06

  • Facebook
  • mixi
  • hatena

「性能問題の調査方法  その3(プログラム調査)」や「性能問題の原因と対策(アーキテクチャ)」において、プログラムに原因がある場合に、プログラムを改善します。

プログラムはビジネスロジックを実現している中核のため、プログラムを修正する場合には十分な調査・検証を実施し、レベルダウンが発生しないように注意する必要があります。

●CPU使用率が高い場合
ソースレビューで特定したプログラムの無駄な処理部分(ループ内の呼び出し関係、ループの終了条件、が問題があり余分にループする等)を修正します。

●I/O回数が多い場合
プログラム内でファイルを一度に読み込んでいる場合は、1レコード単位に読み込みながら処理を行うように修正します。
また、デバック用トレースログ出力を停止します。

●SQL発行回数が異常に多い場合
データベースのジョインなど機能を利用し、SQL発行をまとめ発行するように修正します。

●無駄なSQL文を発行している場合
無駄なSQLを発行しているプログラム部分をコメントアウトします。

●メモリを異常に使用している場合
プログラム内でソート処理を行うために全データをメモリに展開している場合は、データベースのソート機能を使用するように変更します。
メモリ解放漏れがある場合は、必要な処理完了後メモリを開放するように修正します。

プログラム修正後は、機能レベルの修正確認テストと基本機能全テストを実施し、レベルダウンが発生していないか確認します。その後、プログラム修正による性能改善が図れたか確認します。

次回は、「(9)性能問題を未然に防ぐには」についてお話します。 (2008/06/20)