Jawaban:
gunakan argumennya -Xms<memory> -Xmx<memory>. Gunakan Matau Gsetelah angka untuk menunjukkan masing-masing Meg dan Gigs dari byte. -Xmsmenunjukkan minimum dan -Xmxmaksimum.
-Xmx524Mdan 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.
-Xmx<ammount of memory>
Contoh:
-Xmx1024m
Itu akan memungkinkan maks 1GB memori untuk JVM.
-XX:MaxDirectMemorySize. Bukannya saya sudah membuat banyak profil untuk memastikan tapi tetap;)
MaxDirectMemorySizesatunya 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
ulimitperintah Linux? Saya melakukan pencarian Google cepat dan tidak melihat hubungan antara ulimitdan JVM. Y
Jawaban 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.
NativeHeap dapat ditingkatkan dengan -XX: MaxDirectMemorySize = 256M (standarnya adalah 128)
Saya tidak pernah menggunakannya. Mungkin Anda akan merasakan manfaatnya.