今天Eclipse当我部署完项目后,保存后自动编译,结果显提示我内存不足,当我点击确定后,继续部署工作空间后,eclipse要求退出保存工作空间,我试了几次,都是这个结果,我强制不退出后,每次保存都是有问题,看看部署状态,Tomcat已经提示出现问题了,我猜到可能是JVM内存的问题,于是找到exlipse.ini,修改为:
-vmargs
-Xms128M
-Xmx512M
-XX:PermSize=64M
-XX:MaxPermSize=128M
把了解的总结下:
参数中-vmargs的意思是设置JVM参数,所以后面的其实都是JVM的参数了,我们首先了解一下JVM内存管理的机制,然后再解释每个参数代表的含义。
堆内存分配
JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC 后调整堆的大小。
非堆内存分配
JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。设置VM参数导致程序无法启动主要有以下几种原因:
1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;
2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。
参数写入到eclipse.ini文件Eclipse没有执行对应的设置?
没有遵守eclipse.ini文件的设置规则:
参数形如“项 值”这种形式,中间有空格的需要换行书写,如果值中有空格的需要用双引号包括起来。比如我们使用-vm C:\Java\jre1.6.0\bin\javaw.exe参数设置虚拟机,在eclipse.ini文件中要写成这样:
-vm
C:\Java\jre1.6.0\bin\javaw.exe
Eclipse压缩包中自带的eclipse.ini文件内容是这样的:
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
其中–launcher.XXMaxPermSize(注意最前面是两个连接线)跟-XX:MaxPermSize参数的含义基本是一样的,我觉得唯一的区别就是前者是eclipse.exe启动的时候设置的参数,而后者是eclipse所使用的JVM中的参数。其实二者设置一个就可以了,所以这里可以把–launcher.XXMaxPermSize和下一行使用#注释掉。
补充下啊,在Windows - Preferences --> General--> Startup and Shutdown 去掉不需要的插件,对于Eclipse启动运行性能有帮助的
如果都尝试了,结果还是不可以,那就删掉.metadata文件夹,重新部署Eclipse工作空间
分享到:
相关推荐
4. **资源不足等导致的性能下降分析**: - 检查是否有大量线程处于`TIMED_WAITING`或`WAITING`状态。 - 分析线程等待的原因,比如I/O操作、数据库访问等。 5. **线程不退出导致的系统挂死分析**: - 寻找处于非...
### JavaSE 学习总结 #### 一、Java 基础环境介绍 ...- **触发时机**:当系统内存不足时,GC 会被自动触发。 - **手动触发**:可以通过 `System.gc()` 方法尝试手动触发 GC,但并不保证一定能立即执行。
### 问题1:SDK自动更新导致启动慢 Android Studio默认会在启动时检查SDK更新。如果网络环境不佳,这会显著延长启动时间。解决方法是在启动Android Studio之前,找到`idea.properties`文件,添加一行`disable....
10. **内存泄漏**:虽然Java有垃圾收集机制,但如果创建了大量无法释放的对象,可能会导致内存泄漏。检查并优化对象的生命周期,确保不再使用的对象能被及时回收。 以上只是部分可能的错误类型,实际问题可能更复杂...
- **难度调整**:随着得分的提高,游戏速度自动加快,增加挑战性。 ##### 2.2 实验流程(步骤) 1. **Java编程语言基础**:熟悉Java基本语法与数据结构。 2. **Android软件开发环境搭建**:安装Eclipse、Android ...
- Java不允许存在无法执行到的语句,这会导致编译错误或运行时异常。 ```java while (true) {} while (true) {} // 第二个`while`循环无法执行 ``` #### 十、switch语句支持的数据类型 - **历史演变**: - ...
- 使用未初始化的变量会导致编译错误。 - **1.4.8 在声明变量时初始化** - 可以在声明变量的同时为其赋初值:`int a = 10;` - **1.4.9 在第一次使用变量前初始化** - 如果变量在声明时未初始化,则应在首次使用...
- **问题解析**:对于 `short` 类型的自增运算,直接使用 `+` 会导致编译错误,因为 `+` 运算符默认将 `short` 转换成 `int` 类型。 - **代码示例**: ```java short s1 = 1; s1 = (short)(s1 + 1); // 显式类型...
- **泛型在集合中的应用**:泛型允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。 **2. 实用类** - **枚举**:枚举是一种特殊的类,用于表示一组固定的常量值。 - **包装类的...
Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分...
Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...
Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...
Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...
Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分,比较有意思,也具参考性。像坐标控制、旋转矩阵、定时器、生成图像...
Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分...
Java编写的网页版魔方游戏 内容索引:JAVA源码,游戏娱乐,魔方,网页游戏 Java编写的网页版魔方游戏,编译后生成.class文件,然后用HTML去调用,不过运行时候需要你的浏览器安装有运行Class的插件。Java源代码实现部分...