今天有个同事问我一个问题,他的Eclipse经常出现OutOfMemoryError,从原理上说,有两种原因会导致客户机的Eclipse内存溢出:
1.Ecplise因为是ide,涉及大量的class的重新build,每次build,classloader会重新加载此class,而老的class,没有被卸载,同时JVM不会垃圾回收此class(据说是因为classloader本身有内存泄露,也许是classloader仍然对改class进行了引用,因此,这类class不会被unload),因此,可以设置较大的PermSize,因为Class是分配在Perm space里面的。但是这种办法只能延长OutOfMemory的时间,因为class的重新装载迟早会造成永久代的内存溢出,这种情况在产品线上应该不会出现,一般产品线上重新部署程序时,都要求重启JVM的,所以问题不大。
2.因为eclipse经常跟本地的其它应用程序一起运行,OS的内存会把分配给其它应用程序,为了避免应用程序抢走JVM的内存,通常我们在设置堆大小时,有初始化堆的大小和最大堆的大小,在JVM启动时,JVM会向OS申请初始化堆大小的内存空间,只有当堆内存不足时,JVM才会想OS请求内存直到Xmx为止,当内存被其它应用程序占用时,JVM往往申请不到内存,这很容易堆内存溢出,因为,此时堆大小已经不能再扩展了。因此,所以把xmx=xmn设置成一样大,可以避免内存被其它进程抢走。
综上所述,如果eclipse OutOfMemoryError,推荐使用下列配置(具体大小可以视PC的配置,笔者的机器配置为2G内存,双核):
#-showsplash
#org.eclipse.platform
#-framework
#plugins\org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
-vmargs
-Xms512M
-Xmx512M
-XX:PermSize=150M
-XX:MaxPermSize=150M
这个文件在eclipse安装目录下eclipse.ini文件。
分享到:
相关推荐
解决“outofmemory”问题通常涉及以下步骤: 1. **分析堆转储(Heap Dump)**:使用工具如VisualVM或Eclipse Memory Analyzer来分析堆转储,找出占用内存最多的对象和类。 2. **检查配置**:审查`bizsm-mq-services...
在使用Eclipse集成开发环境(IDE)进行ANT编译时,有时会遇到“OutOfMemory”错误,这通常意味着ANT在尝试编译大量代码或者运行复杂构建任务时,分配给它的内存不足。为了解决这个问题,我们需要调整ANT的内存设置,...
在使用Eclipse开发工具的过程中,经常会出现“内存溢出”(Out of Memory Error)的问题,这主要是由于Eclipse运行时所分配的内存不足导致的。当出现这种情况时,不仅会影响开发效率,还可能造成项目的延误。本文将...
5. **内存不足问题**:如果你收到“Out of Memory”错误,可能是因为Tomcat服务器的内存设置过低。可以修改Tomcat的bin/catalina.bat(Windows)或bin/catalina.sh(Linux/Mac)文件,增加-Xms和-Xmx参数来增大堆...
1. **理解导致OutOfMemory条件的原因** 2. **使用Tivoli Performance Viewer检测内存溢出状况** 3. **获取详细的垃圾收集(GC)日志** 4. **获取Java堆内存快照(Heap Dump)** 5. **解读详细的垃圾收集日志** 6. **...
1. **内存设置**:如果Eclipse启动缓慢或运行时出现“Out of Memory”错误,可能需要调整Eclipse的启动参数。在eclipse.ini文件中增加 `-Xms` 和 `-Xmx` 参数,分别设置初始堆大小和最大堆大小。 2. **插件优化**:...
这种情况通常表现为Eclipse突然崩溃、无响应或者出现"Out of Memory"错误提示。本文将深入探讨Eclipse内存报错的原因、解决方法以及如何优化Eclipse的内存配置。 1. **原因分析** - **项目规模大**:如果你正在...
这种设计使得即使在内存压力下,Fresco也能有效地防止OOM(Out Of Memory)错误。 - 它使用了“Shadow Drawee”概念,即图片在加载完成前显示一个占位符,提升用户体验。 - 图片加载过程是在后台线程进行的,避免...
当Tomcat运行时,如果内存分配不当,可能会出现“Out of Memory”错误,比如“gen space不够”的报错,通常指的是新生代内存不足。为避免这类问题,我们需要在启动Tomcat时指定适当的内存参数。 在Eclipse中设置...
- **内存不足异常**:如果在运行FindBugs时出现“Out of Memory”错误,可以通过调整Eclipse的启动配置来解决。打开`eclipse.ini`文件,增加初始堆大小和最大堆大小,如`-Xms512m -Xmx1024m`。 总结,FindBugs_...
3. 在导入SDK到Eclipse时,可能会导致Eclipse在Java中崩溃,并提示“out of memory”错误。这说明Eclipse或系统可能没有分配足够的内存给IDE使用,需要调整内存分配。 4. 点击Eclipse启动时,可能会花费很长时间。...
- **OOME诊断**:当出现内存溢出错误(Out Of Memory Error, OOME)时,MAT能提供诊断报告,指导如何调整JVM内存设置。 5. **导出与报告** - **CSV/Excel导出**:MAT支持将分析结果导出为CSV或Excel格式,方便...
在使用Eclipse进行软件开发过程中,可能会遇到“内存溢出”(Out of Memory Error)的问题,导致Eclipse无法正常启动或运行。这类问题通常与JVM(Java虚拟机)的内存配置有关。 #### 二、内存溢出原因分析 ##### 1...
6. **内存溢出(Out Of Memory, OOM)**: 当应用程序消耗过多内存时,会抛出OOM异常。优化图片资源,减少对象创建,合理使用`System.gc()`,以及设置适当的Dalvik VM堆大小,可以防止这类问题。 7. **权限问题**...
在Java开发过程中,内存管理是一项至关重要的任务,而Java虚拟机(JVM)中的内存溢出(Out of Memory,简称OOM)问题常常困扰着开发者。当应用程序消耗的内存超过了JVM所能分配的最大内存时,就会引发OOM错误,导致...
在Java应用程序运行过程中,经常会遇到“Out of Memory Error: Java Heap Space”的错误提示。这种错误通常发生在Java虚拟机(JVM)的堆内存不足时,导致程序无法继续运行。为了解决这一问题,本文将详细介绍如何...
在进行Java应用程序开发时,MyEclipse作为一款强大的集成开发环境(IDE),有时会因为处理大量项目、编译代码或运行复杂应用时消耗过多内存,从而导致“内存不足”(Out of Memory)的问题。这个问题是许多开发者在...
MAT的强大之处在于它能帮助开发者深入理解JVM(Java虚拟机)的内存管理,尤其是当面临"OOM"(Out Of Memory)问题时,MAT能够提供详尽的分析报告,找出内存泄漏的根源。 首先,我们来了解一下JVM内存管理的基本概念...
#### 八、OutOfMemory错误实例 在实践中,可能会遇到多种类型的`OutOfMemoryError`。例如: - `Java heap space`: 表示堆内存不足。 - `PermGen space`: 在Java 8之前,表示永久代空间不足。 - `Metaspace`: Java ...