Perbezaan dalam Memori Heap Terpakai, Berkomitmen, dan Maksimum

1. Gambaran keseluruhan

Dalam artikel pendek ini, kita akan melihat perbezaan antara pelbagai metrik ukuran memori di JVM.

Pertama, kita akan membincangkan bagaimana ukuran penyesuaian berfungsi, dan kemudian kita akan menilai perbezaan antara ukuran maksimum, terpakai, dan komitmen.

2. Saiz Maksimum dan Ukuran Adaptif

Dua nilai mengawal ukuran timbunan JVM: satu nilai awal ditentukan melalui bendera -Xms dan satu lagi nilai maksimum yang dikawal oleh bendera penalaan -Xmx .

Sekiranya kita tidak menentukan bendera ini, maka JVM akan memilih nilai lalai untuknya. Nilai lalai ini bergantung pada OS yang mendasari, jumlah RAM yang ada, dan, tentu saja, pelaksanaan JVM itu sendiri:

Terlepas dari ukuran sebenarnya dan nilai lalai, ukuran timbunan dimulai dengan ukuran awal. Ketika kami memperuntukkan lebih banyak objek, ukuran timbunan mungkin bertambah untuk menampung itu. Ukuran timbunan, bagaimanapun, tidak dapat melampaui ukuran timbunan maksimum.

Sederhananya , ukuran timbunan maksimum adalah ukuran yang ditentukan melalui bendera -Xmx . Juga, apabila kita tidak secara jelas menentukan -Xmx , JVM mengira ukuran maksimum lalai .

3. Saiz Terpakai

Sekarang, anggaplah kita memperuntukkan beberapa objek sejak program dimulakan. Ukuran timbunan mungkin bertambah sedikit untuk menampung objek baru:

Ruang yang digunakan adalah jumlah memori yang saat ini ditempati oleh objek Java . Selalunya kurang dari atau sama dengan ukuran maksimum.

4. Saiz Komited

Ukuran komitmen adalah jumlah memori yang dijamin tersedia untuk digunakan oleh mesin maya Java . Ukuran memori yang berkomitmen selalu lebih besar daripada atau sama dengan ukuran yang digunakan.

5. Kesimpulan

Dalam artikel pendek ini, kami melihat perbezaan antara ukuran timbunan maksimum, bekas, dan komitmen.