cari

Rumah  >  Soal Jawab  >  teks badan

java - 今天开始用eclipse编写servlet程序,但是经常写着写着就变的很卡,最后强行关闭,又重启还是不行,为什么呢?

有时候会自己卡在那,有时候eclipse提示出现问题,要求我查看workspace.metadata.log文件,log文件提示的错误是:
!ENTRY org.eclipse.osgi 4 0 2016-11-05 15:17:10.371
!MESSAGE Error stopping the framework.
!STACK 0
java.lang.OutOfMemoryError: PermGen space


我在百度上查的java.lang.OutOfMemoryError解决方案是在tomcat配置里扩大内存,如图,红色部分是根据提示添加的:

还有的说在eclipse里修改Window/Perferences/General里的Startup and Shutdown,把打勾的都去掉。

我试了两种方法都不行,再次打开eclipse编程过一会还是会边卡,求大神指教,这是为什么啊?

迷茫迷茫2766 hari yang lalu978

membalas semua(4)saya akan balas

  • 天蓬老师

    天蓬老师2017-04-18 10:21:04

    1 Seperti yang ditunjukkan di bawah, anda boleh menemui ecplise.ini di bawah laluan pemasangan Ecplise, pilih editor teks untuk membukanya, lihat parameter tetapan ini dalam kotak dan tetapkannya mengikut ingatan anda sendiri


    Kedua, anda juga boleh mengambil memori maya jdk yang anda gunakan dalam ecplise
    Cari tetingkap->preferences->Java->Dipasang dalam eclispe JRE, klik butang Edit di sebelah kanan, dan isikan nilai berikut dalam pilihan "Default VM Arguments" dalam antara muka penyuntingan.
    -Xms64m -Xmx128m

    3

    Klik kanan pada kod, klik "Run As"-> "Run Configurations", dan isikan nilai berikut dalam "VM arguments:" dalam parameter Arguments.

    -Xms64m -Xmx128m

    Akhir sekali, nilai parameter ini bukan untuk anda isi sahaja. Sebaiknya tetapkan nilai yang munasabah berdasarkan memori mesin anda sendiri

    Berikut ialah penerangan rasmi

    Memori timbunan dan bukan timbunan
    Menurut kenyataan rasmi: "Mesin maya Java mempunyai timbunan. Timbunan ialah kawasan data masa jalan, semua contoh kelas dan Memori daripada tatasusunan diperuntukkan dari sini Timbunan dibuat apabila mesin maya Java dimulakan "Memori di luar timbunan dalam JVM dipanggil memori bukan timbunan." Ia boleh dilihat bahawa JVM terutamanya menguruskan dua jenis ingatan: timbunan dan bukan timbunan. Ringkasnya, heap ialah memori yang boleh diakses oleh kod Java dan dikhaskan untuk pembangun adalah memori yang dikhaskan untuk JVM untuk kegunaannya sendiri, jadi memori yang diperlukan untuk kawasan kaedah dan pemprosesan atau pengoptimuman dalaman JVM (seperti Cache kod yang disusun JIT), setiap struktur kelas (seperti kumpulan pemalar masa jalan, data medan dan kaedah), dan kod untuk kaedah dan pembina semuanya berada dalam memori luar timbunan.
    Peruntukan memori timbunan
    Memori awal yang diperuntukkan oleh JVM ditentukan oleh -Xms, dan lalai ialah 1/64 daripada memori fizikal yang diperuntukkan oleh JVM ditentukan oleh -Xmx, dan lalai ialah 1/4 daripada ingatan fizikal. Secara lalai, apabila memori timbunan percuma kurang daripada 40%, JVM akan meningkatkan timbunan sehingga had maksimum -Xmx apabila ingatan timbunan percuma lebih daripada 70%, JVM akan mengurangkan timbunan sehingga had minimum; -Xms. Oleh itu, pelayan biasanya menetapkan -Xms dan -Xmx adalah sama untuk mengelak daripada melaraskan saiz timbunan selepas setiap GC.
    Peruntukan memori bukan timbunan
    JVM menggunakan -XX:PermSize untuk menetapkan nilai awal memori bukan timbunan, lalai ialah 1/64 daripada memori fizikal XX:MaxPermSize menetapkan saiz memori bukan timbunan maksimum , lalai ialah 1/64 daripada memori fizikal /4.
    Had memori JVM (nilai maksimum)
    Pertama sekali, ingatan JVM terhad kepada memori fizikal maksimum sebenar (karut! Haha dengan mengandaikan bahawa memori fizikal adalah tidak terhingga, nilai maksimum memori JVM mempunyai banyak). berkaitan dengan sistem pengendalian. Secara ringkasnya, walaupun ruang memori boleh dikawal bagi pemproses 32-bit ialah 4GB, sistem pengendalian tertentu akan menetapkan had ini secara amnya ialah 2GB-3GB (secara amnya, ia adalah 1.5G-2G di bawah sistem Windows dan 1.5. G-2G di bawah sistem Linux).

    balas
    0
  • 天蓬老师

    天蓬老师2017-04-18 10:21:04

    • Tingkatkan memori/tukar SSD

    • Tukar komputer

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-18 10:21:04

    Cuba tambahkan konfigurasi ini pada konfigurasi JDK tomcat Tangkapan skrin tidak boleh dimuat naik dalam argumen VM Java Pilihan dalam pelayan>tomcat>JDK

    .

    balas
    0
  • 阿神

    阿神2017-04-18 10:21:04

    Mudah, tukar kepada idea (tetapi konfigurasi lebih baik)

    balas
    0
  • Batalbalas