Saya ingin membatasi memori maksimum yang digunakan oleh JVM. Catatan, ini bukan hanya tumpukan, saya ingin membatasi total memori yang digunakan oleh proses ini.
java
memory
memory-management
memory-leaks
profiling
erotsppa
sumber
sumber
-Xmx524M
dan prosesnya memakan 1,2 GB RAM. (?)Anda tidak perlu khawatir tentang tumpukan memori yang bocor (sangat jarang terjadi). Satu-satunya saat Anda dapat membuat tumpukan keluar dari kendali adalah dengan rekursi tak terbatas (atau sangat dalam).
Ini hanya tumpukan. Maaf, tidak membaca pertanyaan Anda sepenuhnya pada awalnya.
Anda perlu menjalankan JVM dengan argumen baris perintah berikut.
Contoh:
Itu akan memungkinkan maks 1GB memori untuk JVM.
sumber
-XX:MaxDirectMemorySize
. Bukannya saya sudah membuat banyak profil untuk memastikan tapi tetap;)MaxDirectMemorySize
satunya yang memengaruhi buffer NIO. Semua jenis memori asli lainnya digunakan oleh JVM.Jika Anda ingin membatasi memori untuk jvm (bukan ukuran heap) ulimit -v
Untuk mendapatkan gambaran tentang perbedaan antara jvm dan memori tumpukan, lihat artikel yang sangat bagus ini http://blogs.vmware.com/apps/2011/06/taking-a-closer-look-at-sizing-the- java-process.html
sumber
ulimit
perintah Linux? Saya melakukan pencarian Google cepat dan tidak melihat hubungan antaraulimit
dan JVM. YJawaban di atas agak benar, Anda tidak dapat dengan anggun mengontrol berapa banyak memori asli yang dialokasikan oleh proses java. Tergantung pada apa aplikasi Anda lakukan.
Yang mengatakan, tergantung pada platform, Anda mungkin dapat menggunakan beberapa mekanisme, misalnya misalnya, untuk membatasi ukuran java atau proses lainnya.
Tapi jangan berharap itu gagal dengan anggun jika itu mencapai batas itu. Kegagalan alokasi memori asli jauh lebih sulit untuk ditangani daripada kegagalan alokasi pada heap java. Ada peluang yang cukup bagus untuk aplikasi tersebut macet tetapi tergantung pada seberapa kritisnya sistem untuk menjaga ukuran proses turun yang mungkin masih cocok untuk Anda.
sumber
Saya tidak pernah menggunakannya. Mungkin Anda akan merasakan manfaatnya.
sumber