ここで、これらの命令がどのようにメモリを割り当てるのかをご説明します。それらは、それが実際にRAMにどのように見えるか、割り当てられている場合はC++ new/new []、どのようにメモリを割り当てるのですか?
x = new int[5];
y = new int[5];
:私はコードを得た場合どのような例えば
? 変数またはブロック(メモリページまたは32ビットで4KBのサイズのメモリページ)ごとに、ブロック全体が2つの変数で共有されていますか?
私の質問に対する回答はどのマニュアルでも見つかりませんでした。すべての返信をありがとう。
私はウィキペディアで見つけました: ページの内部断片化 プロセスはまれに正確なページ数を使用する必要があります。その結果、最後のページは部分的に満杯になり、いくらかの量のメモリを無駄にすることになります。より大きなページサイズは、メモリの未使用部分がメインメモリにロードされる可能性が高いため、この方法で無駄なメモリの可能性を明らかに増加させます。ページサイズが小さくなると、割り当てに必要な実際のメモリ容量に近い値になります。 例として、ページサイズが1024KBであるとします。プロセスが1025KBを割り当てる場合は、2ページを使用する必要があります。その結果、1023KBの未使用領域が発生します(1ページは完全に1024KBを消費し、もう1ページは1KBのみ)。
それは私の質問の答えでした。とにかくありがとう。
私のシステム(debianx64)では、ページサイズは4096バイトです。それを減らす可能性はありますか?私はメモリにたくさんの小さな断片を保存したいと思いますが、1バイトの予約でさえ、ここで1番目のメッセージに追加されたもののために別の4095を使用することはできません。それは本当ですか、私は間違っていますか? –