1

計算性能を向上させるために、メモリに大量のデータを格納する必要のあるアプリケーションを作成しています。

これは、リストとオブジェクトの階層であり、最上位のオブジェクトはです。データをロードすると、のインスタンスが多数作成され、リストに追加されます。メモリ消費量が増加し、約1.9Gbになるとプログラムがクラッシュします。私のコンピューター(Vista)には4Gb RAMがあり、RAM(XP)が少ない他のコンピューターでテストしたところ、同じ時点でクラッシュしました。1.9Gbを超えるRAMを使用することはできませんか?QList<myObject*>new myObject*

小さいファイルが読み込まれ、「Windowsタスクマネージャー」によるメモリ使用量が(たとえば)1.2Gbの場合、データを処理できます。しかし、別のファイルをロードしたい場合は、deleteすべてのオブジェクトを呼び出してリストをクリアした後でも、1.2Gbから成長が始まります。なんで?
に切り替えてQVector呼び出してみましsqueeze()たが、メモリは同じままです。QListsでの動的メモリ割り当てに関する他のスレッドをここで読みましたが、新しいファイルをロードする前にメモリをリセットする方法は本当にありませんか?特に1.9Gb後にクラッシュするため。3つの小さなファイルを順番にロードして、そこにいます。

提案をありがとうございました。

4

1 に答える 1

4

32ビットWindowsを使用している場合、プロセスで使用できるメモリは2GBのみです。32ビットでこれ以上メモリをアドレス指定することはできません。より多くのメモリが必要な場合は、64ビットWindowsに変更する必要があります。

于 2010-07-08T14:42:50.510 に答える