2008/6/21 土曜日

メモリリークを解消せよ メモリの無駄遣い

Filed under: 開発技術関係 — admin @ 0:33:43

Javaアプレットで文字を流す文字を修正する場合、動かす文字のy座標の位置を乱数を用いループ表示している。しかし、ここで問題が!

一定時間アプレットを動かしていると流す文字が消えて行ってしまうではないか!

40個のオブジェクト(一個あたりフォントサイズ36px、文字の長さ40文字)の位置配置計算をループでやるといった仕組みだが、3分ほどで一つも流れなくなってしまう。

描画をきれいにするためダブルバッファリングをしている。一時的にバッファを作成し、そこに一時的に描画し、それを再描画するというもの。

これによりメモリが一時的に占領・上書きが繰り返されるため、メモリリークと呼ばれるメモリの断片化が発生してしまう。プログラムのバグでよく多いのがこのメモリリークと呼ばれるもので調べるとメモリリークのバグを見つけるのは困難らしい。フリーソフトなどを使うとパソコンが重くなってしまうのはそのせいだ。

そのため、メモリリークを探すには専用ソフトを使うのが望ましい。

・詳細情報ソース<@IT>
http://www.atmarkit.co.jp/fjava/rensai3/debug02/debug02_1.html

HTML convert time: 0.113 sec. Powered by WordPress ME