Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 24728|Jawab: 1

[Sumber] Tidak dapat memesan ruang yang cukup untuk tumpukan objek 2097152KB

[Salin tautan]
Diposting pada 24/07/2017 10.43.36 | | | |
Kesalahan: Tidak dapat memesan cukup ruang untuk tumpukan objek 2097152KB

Saya memulai activemq dan melaporkan kesalahan, yang disebabkan oleh terlalu banyak alokasi, jadi saat mengalokasikan memori MQTT, itu perlu ditentukan dengan menggabungkan ukuran memori server (gunakan free -g) dan apakah JDK mendukung ukuran memori.

Pengaturan parameter JVM

Parameter utama:
-Xms: Ukuran memori awal
-Xmx: Ukuran memori maksimum
-Xmn: Ukuran generasi yang lebih muda

Gunakan perintah Java -Xmx2047M -version untuk melihat apakah itu mematuhi:


Larutan:

Mulai - Panel Kontrol > - Sistem > - Pengaturan Lanjutan > - Variabel Lingkungan > - Variabel Sistem >

Variabel Baru:
Nama Variabel: _JAVA_OPTIONS   
Nilai variabel: -Xmx1G






Mantan:MySQL mengkueri tabel tanpa jumlah catatan kosong
Depan:Perbedaan antara server dan klien JVM mesin virtual Java
 Tuan tanah| Diposting pada 24/07/2017 10.45.37 |
Baru-baru ini mengerjakan program untuk Java. Awalnya, saya selalu menyukai manajemen memori Java, tidak perlu khawatir mengalokasikan memori, cukup alokasikan, pengumpul sampah akan merebut kembali memori untuk Anda. Sekarang program ini dikembangkan dengan sejumlah besar data, dan demi kecepatan, saya akan memuat semua informasi ke dalam memori, yang akan memastikan respons yang cepat. Saya masih berulang kali menghitung memori, memikirkan jumlah data saya sendiri, yang seharusnya cukup di awal (mesin saya memiliki memori 4G, meskipun Windows mengenali 3.5G, tetapi seharusnya baik-baik saja dibandingkan dengan volume data saya saat ini).

Tanpa diduga, program percobaan pertama berjalan selama beberapa jam dan menemukan Pengecualian Memori Kehabisan Memori. Melihat pengaturan VM saya sendiri, saya mengatur -Xms512M -Xmx1024M. Tanpa memikirkannya, saya langsung mengubahnya menjadi -Xms512M -Xmx2048M, dan hasilnya adalah saya tidak dapat memesan cukup ruang untuk tumpukan objek. Program tidak bisa bangun. Baru kemudian saya menyadari bahwa masih ada batasan memori maksimum aslinya. Saya mencari di Internet dan menemukan banyak artikel yang membahas masalah ini. Akhirnya, saya menemukan artikel yang paling berguna di forum DEV2DEV BEA

Di sini moderator YuLimin melakukan tes dan sampai pada kesimpulan:

Versi JVM perusahaan Memori maksimum (mega) klien Memori maksimum (mega) server

MATAHARI 1.5.x 1492 1520

MINGGU 1.5.5 (Linux) 2634 2660

MINGGU 1.4.2 1564 1564

SUN 1.4.2 (Linux) 1900 1260

IBM 1.4.2 (Linux) 2047 N / A

BEA JRockit 1.5 (U3) 1909 1902

Saya menggunakan JDK1.6.0_05 sekarang, mengujinya. Hal terbesar dalam status klien adalah JDK saya tidak mengenali parameter -Server dan tidak dapat menguji status server. Perkiraannya hampir sama.

MINGGU 1.6.0 1442 N/A

Tampaknya tidak mungkin menggunakan memori besar di Java. Dan pepatah umum adalah bahwa jika ingatannya terlalu besar, waktu pengumpulan sampah akan lama. Hal ini juga bisa dimengerti, umumnya dikumpulkan ketika memori tidak cukup, pemindaian memori 2G tentu saja jauh lebih lambat daripada 1G, dan ada lebih banyak objek memori, perkiraan hubungan meningkat secara eksponensial.

Terlampir di bawah ini adalah metode pengujian dan catatan pengujian YuLimin.

Metode pengujian: Gunakan perintah java -XmxXXXXM -version untuk menguji pada baris perintah, dan kemudian tingkatkan nilai XXXX secara bertahap, jika berjalan normal, itu berarti ukuran memori yang ditentukan tersedia, jika tidak, pesan kesalahan akan dicetak.
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com