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

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

迷茫
迷茫

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

répondre à tous(4)
Peter_Zhu

1 Comme indiqué ci-dessous, vous pouvez trouver ecplise.ini sous le chemin d'installation d'ecplise, sélectionner un éditeur de texte pour l'ouvrir, afficher les paramètres de ces paramètres dans la boîte et les définir en fonction de votre propre mémoire


Deuxièmement, vous pouvez également récupérer la mémoire virtuelle du jdk que vous utilisez dans ecplise
Fenêtre de recherche->préférences->Java->Installé dans eclispe JRE, cliquez sur le bouton Modifier à droite et remplissez les valeurs suivantes dans l'option "Arguments par défaut de la VM" dans l'interface d'édition.
-Xms64m -Xmx128m

Modifier les configurations d'exécution

Cliquez avec le bouton droit sur le code, cliquez sur "Exécuter en tant que" -> "Exécuter les configurations" et renseignez les valeurs suivantes dans "Arguments VM :" dans le paramètre Arguments.
-Xms64m -Xmx128m

Enfin, ces valeurs de paramètres ne sont pas à remplir simplement. Il est préférable de définir des valeurs raisonnables en fonction de la mémoire de votre propre machine

Ce qui suit est la description officielle
Mémoire tas et non tas
Selon la déclaration officielle : "La machine virtuelle Java a un tas. Le tas est la zone de données d'exécution, toutes les instances de classe et la mémoire du tableau est alloué à partir d'ici. Le tas est créé au démarrage de la machine virtuelle Java. "La mémoire en dehors du tas dans la JVM est appelée mémoire non tas." On constate que la JVM gère principalement deux types de mémoire : tas et non tas. En termes simples, le tas est la mémoire accessible au code Java et est réservée aux développeurs ; le non-heap est la mémoire réservée à la JVM pour son propre usage, donc la mémoire requise pour la zone de méthode et le traitement ou l'optimisation interne de la JVM (comme cache de code compilé JIT), chaque structure de classe (telle que le pool de constantes d'exécution, les données de champ et de méthode) et le code des méthodes et des constructeurs sont tous dans la mémoire hors tas.
Allocation de mémoire du tas
La mémoire initiale allouée par la JVM est spécifiée par -Xms, et la valeur par défaut est 1/64 de la mémoire physique ; la mémoire maximale allouée par la JVM est spécifiée par -Xmx, et la valeur par défaut est représente 1/4 de la mémoire physique. Par défaut, lorsque la mémoire du tas libre est inférieure à 40 %, la JVM augmentera le tas jusqu'à la limite maximale de -Xmx ; lorsque la mémoire du tas libre est supérieure à 70 %, la JVM réduira le tas jusqu'à la limite minimale de -Xms. Par conséquent, le serveur définit généralement -Xms et -Xmx comme étant égaux pour éviter d'ajuster la taille du tas après chaque GC.
Allocation de mémoire non tas
JVM utilise -XX:PermSize pour définir la valeur initiale de la mémoire non tas, la valeur par défaut est 1/64 de la mémoire physique XX:MaxPermSize définit la taille maximale de la mémoire non tas ; , la valeur par défaut est 1/64 de la mémoire physique /4.
Limite de mémoire JVM (valeur maximale)
Tout d'abord, la mémoire JVM est limitée à la mémoire physique maximale réelle (un non-sens ! Haha en supposant que la mémoire physique est infinie, la valeur maximale de la mémoire JVM en a beaucoup). à voir avec le système d'exploitation. Pour faire simple, bien que l'espace mémoire contrôlable d'un processeur 32 bits soit de 4 Go, le système d'exploitation spécifique fixera une limite. Cette limite est généralement de 2 Go à 3 Go (en général, elle est de 1,5G-2G sous les systèmes Windows et de 1,5). G-2G sous les systèmes Linux). 2G-3G), et il n'y aura aucune restriction sur les processeurs supérieurs à 64 bits.

Peter_Zhu
  • Augmenter la mémoire/changer de SSD

  • Changer d'ordinateur

伊谢尔伦

Essayez d'ajouter ces configurations à la configuration JDK de Tomcat. La capture d'écran ne peut pas être téléchargée. Elle se trouve dans les arguments facultatifs de la machine virtuelle Java dans le serveur>tomcat>JDK

.
阿神

Facile, passez à l'idée (mais la configuration est meilleure)

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal