0

与えられた時間の値などでその値を比較する株価を計算するプログラムを実装しました。すべての日付とdouble値を含むcsvファイルがあります。私のプログラムでは、すべての日付について、ファイルを開き、指定された日付の値を解析および検索しています。そして、私は何度も日付をチェックするかもしれません。そのため、HashMapでこれらの値を使用したいのですが、指定された日付の値がキーとしてない場合は、csvファイルを開いて検索します。しかし、そのプログラムを実装する前に、すべての値をハッシュマップに格納する場合、それが8MBのJavaのヒープに収まるかどうかを確認したいと思います。私のcsvファイルには1200行の日付と対応するdouble値があります。コードを実装する前にそれを理解する方法はありますか?それとも、より効率的なプログラムを作成するためのより良いアイデアをアドバイスしますか?

ありがとう。

4

1 に答える 1

1

このデータをハッシュマップにロードすることは、ファイルから常に読み取るよりも桁違いに効率的です。特定の csv ファイルの解析と読み込みによってどのくらいのヒープ領域が占有されるかを判断するための厳密で迅速なルールはありません。これは、システム アーキテクチャ、使用される文字列エンコーディング、データ型などによって異なります。

最も単純で最適な方法は、単純な JVM プロファイラーを実行して、特定のサイズのファイルをハッシュマップにロードする直前と直後のヒープ使用量の違いを調べることです。

于 2012-03-09T19:53:54.943 に答える