設計変更完了

とりあえず、予定していた変更を完了してメモリ使用量の増加は押さえることが出来た。そもそもが、以前は、ツリー構造のデータをそのままもっちまったので、当然それが開放されない限り、そいつらはどうしようもなかった。

今回は、ここのツリーでは、他の子ノードのようなデータは保持しないようにしてみた。その為、利用が済んだたらデータは開放される。

が、テストをやってみてわかったのだが、ある程度の速度低下は覚悟していたのだが、予想以上にパフォーマンスの落ち込みが激しすぎる。そもそもが、ツリーのデータを Composite パターンに沿って、ツリーを単純に作っていた為、ほぼ、最短でデータにアクセスできるので、早いことは早いのだが、データの開放タイミングがつかめない。しかも、ツリーの上下でリンクをつくったりと、少ないデータでは全く問題ない構造をしていた。そこをなんとか、データ量が増えても問題ないようにしたのだが、早々にキャッシュ構造を作る必要がでてきた。キャッシュに関しては適時開放できるので問題はないのだが、結局消費メモリがある程度は必要になってしまう...。さらにそれでも、速度は以前のよりもだいぶ遅い...。orz。

ただ、変更したことで、いくつか設計上の拡張性も確保している為、安易に前の場合に戻すことができない。悩ましい限りだ。とりあえず、データキャッシュ構造でなんとかしのぐことを考えたいが、もし難しいなら、別の方法での実装も考えていたのでそっちも挑戦してみるか...。ちょっと進まないけど、大事なところなので何とかしたい。