問題は次のようなものです。どこに行くのが最善の方法ですか?必要な時に、どこかにJavaのarraylistやアクセステーブルにテーブルデータを格納しますか?
ポイントから緯度と経度を取得して、agent
クラスに格納しています。 クラスには、id、緯度、経度のメンバーと、assosciated関数があります。
javaアプリケーションの開始時に、ローカルのMySQLテーブル(座標値を持つ)からすべての行を読み込み、変数agent
のarraylistに格納します。その後、このarraylistを読み込み、必要な機能を呼び出し、最後にグラフを描きます。
これは8K - 10K行のテーブルで正常に動作しますが、約200,000行の別のテーブルでは、Javaでヒープサイズエラーが発生し始めます。
私は、エージェントの毎回の座標が必要なdbにアクセスするようにコードを変更することを考えています。これは必要なメモリを減らすはずですか?しかし、このagent
ArrayListのIterator
を使用するループが多数あります。私はそれをどう扱うかについてまだ修正しています。
だから、いつでもテーブルから読んだり、そのまま実行したり、Javaメモリの割り当てを増やしたりするのが良い選択でしょうか? 読んでいただきありがとうございます。
eclipseでメモリアナライザツールを使用して、JFreeチャートのXYSeriesがほとんどのヒープスペースを使用していたことを確認しました。チャートに表示されているポイントを減らしました。現在は動作しています。 – redDevil