Perbedaan dalam Digunakan, Dilakukan, dan Memori Heap Maks

1. Ikhtisar

Dalam artikel singkat ini, kita akan melihat perbedaan antara berbagai metrik ukuran memori di JVM.

Pertama, kita akan berbicara tentang cara kerja ukuran adaptif, dan kemudian kita akan mengevaluasi perbedaan antara ukuran maks, bekas, dan berkomitmen.

2. Ukuran Maks dan Ukuran Adaptif

Dua nilai mengontrol ukuran tumpukan JVM: satu nilai awal ditentukan melalui tanda -Xms dan nilai maksimum lainnya dikontrol oleh tanda penyetelan -Xmx .

Jika kita tidak menentukan flag ini, maka JVM akan memilih nilai defaultnya. Nilai default ini bergantung pada OS yang mendasarinya, jumlah RAM yang tersedia, dan, tentu saja, implementasi JVM itu sendiri:

Terlepas dari ukuran sebenarnya dan nilai default, ukuran heap dimulai dengan ukuran awal. Saat kami mengalokasikan lebih banyak objek, ukuran heap mungkin bertambah untuk mengakomodasi itu. Namun, ukuran heap tidak boleh melebihi ukuran heap maksimum.

Sederhananya, ukuran heap maksimum adalah ukuran yang ditentukan melalui flag -Xmx . Selain itu, ketika kami tidak secara eksplisit menentukan -Xmx , JVM menghitung ukuran maks default .

3. Ukuran yang Digunakan

Sekarang, misalkan kita mengalokasikan beberapa objek sejak program dimulai. Ukuran heap mungkin bertambah sedikit untuk mengakomodasi objek baru:

Ruang yang digunakan adalah jumlah memori yang saat ini ditempati oleh objek Java . Itu selalu kurang dari atau sama dengan ukuran maksimal.

4. Ukuran Komitmen

Ukuran yang dikomit adalah jumlah memori yang dijamin akan tersedia untuk digunakan oleh mesin virtual Java . Ukuran memori yang berkomitmen selalu lebih besar dari atau sama dengan ukuran yang digunakan.

5. Kesimpulan

Dalam artikel singkat ini, kami melihat perbedaan antara ukuran heap maks, bekas, dan komit.