学校の課題のために、メモリ アクセス用のシミュレーションを作成する必要があります。まず、1 つ以上のトレース ファイルを読み取る必要があります。それぞれに、各アクセスのメモリ アドレスが含まれます。例:
0 F001CBAD
2 EEECA89F
0 EBC17910
...
最初の整数が読み取り/書き込みなどを示す場合、16 進メモリ アドレスが続きます。このデータを使用して、シミュレーションを実行することになっています。したがって、私が持っていたアイデアは、これらのデータをArrayList<Trace>
メモリアドレスとアクセスタイプ(文字列と整数のみ)を含む単純なクラスであるトレース(今のところJavaを使用しています)に解析することでした。その後、これらの配列リストをループして処理する予定です。
問題は解析時でもあり、ヒープスペースが不足しています。各トレース ファイルは最大 200 MB です。私は最大8つ持っています。つまり、「キャッシュ」しようとしているデータの最小〜1.6 GBを意味しますか? 私を困惑させているのは、タスクマネージャーによると、1つのファイルのみを解析していて、Javaが2GBを使用していることです...
これを行うより良い方法は何ですか?
コード スニペットはCode Reviewにあります。