(たとえば) 100KB のメモリ (ヒープ内) を事前に割り当てた後、60KB のみを使用する方が良いですか、それとも必要に応じて各バイトを割り当てる方が良いですか?
私の質問は、このブログを読むことから生じます: http://deplinenoise.wordpress.com/2012/10/20/toollibrary-memory-management-youre-doing-it-wrong/
(たとえば) 100KB のメモリ (ヒープ内) を事前に割り当てた後、60KB のみを使用する方が良いですか、それとも必要に応じて各バイトを割り当てる方が良いですか?
私の質問は、このブログを読むことから生じます: http://deplinenoise.wordpress.com/2012/10/20/toollibrary-memory-management-youre-doing-it-wrong/
です。場合によっては、オペレーティング システムが実際にすべてのスペースを提供するわけではありません。Linux を例にとってみましょう。Java は大量のメモリを要求し、決して使用しない傾向があるため、実際に起こることは、OS は要求されたこれらの範囲を追跡しますが、使用するまでそれらをページ テーブルにマップすることはありません (したがって、フレームを割り当てることはありません)。したがって、仮想メモリに関しては、大量に使用しているように見えますが、実際には、これまでにアクセスしたページ (実際に使用した例では 40kb) のみを使用しています。これは、メモリの仮想使用と物理使用の違いでわかります (プロセスがスワップアウトしていないと仮定します)。