ぼうメモ帳

2003-11-17 リフレクションとswingが遅い

リフレクションが重い

| リフレクションが重いを含むブックマーク

研究用のシミュレーションツール、内部のシミュレーションの状態を逐一表示していました。そしたら、とても重いです。それで、逐一表示をやめました。そしたらどうでしょう、やっぱり重いです。

そして、昔の速かったバージョンと、いまの遅いバージョンを比べてみました。そしたら、リフレクションか!! という結論に達しました。

これから、詳細なプロファイリングをしていきたいなと思われます。

プロファイリング結果

| プロファイリング結果を含むブックマーク

プロファイリングをしてみると、リフレクションでメソッドを呼び出しているのが全体の4割。再描画が全体の2割。えっと、全部でたったの100行もない部分でで全体の6割の処理時間を消費してる…コード全体としては、もう数千行あるのに…

かなしいとき〜

プロファイリング結果2

| プロファイリング結果2を含むブックマーク

上記の部分のうち、リフレクション部の修正は終わりました。これで、残るは描写部分だけだろうと思っていたら…

キター

スレッド間のデータ通信に使っているsynchronizedされたLinkedListと、Thread制御用に使っている同期オブジェクトが全体の5割の処理時間を占めだしました。

同期オブジェクトは仕方がないとはいえ、LinkedListはどうにかしたいなあ。

トラックバック - http://d.hatena.ne.jp/susumu/20031117
254887