java - 今天开始用eclipse编写servlet程序,但是经常写着写着就变的很卡,最后强行关闭,又重启还是不行,为什么呢?
迷茫
迷茫 2017-04-18 10:19:04
0
4
991

有时候会自己卡在那,有时候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编程过一会还是会边卡,求大神指教,这是为什么啊?

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(4)
Peter_Zhu

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).

Peter_Zhu
  • Tingkatkan memori/tukar SSD

  • Tukar komputer

伊谢尔伦

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

.
阿神

Mudah, tukar kepada idea (tetapi konfigurasi lebih baik)

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan