今天突然eclipse启动失败,从命令行运行eclipsec.exe报如下错误:
Error occurred during initialization of VM
Could not reserve enough space for object heap
eclipse.ini里的内存设置为:
-Xms256m
-Xmx512m
可是机器的内存还有1G多空余,为什么会出这种错误呢?google了半天,看到这样一篇文章:
http://www.eclipsezone.com/eclipse/forums/t104307.html
大意是说eclipse启动时申请的堆是连续内存空间,而启动画面引起的windows的图形动态库默认加载到0x5D090000,把内存空间拦腰斩断了,导致实际可以申请的堆要小于我们看到的空闲内存。
于是我尝试性地把eclipse.ini中的下面这个参数注释掉了:
-showsplash org.eclipse.platform
结果在不改变堆设置的情况下,eclipse正常启动了,呵呵
但是启动画面还是显示的,具体原因就不是很清楚了。
分享到:
- 2009-12-02 15:37
- 浏览 1216
- 评论(1)
- 论坛回复 / 浏览 (1 / 2529)
- 查看更多
相关推荐
这可能导致在需要大块内存时,即使总空闲内存充足,也会因物理内存不足触发OOM Killer。 - 未释放的内存块不仅阻碍内核回收,也妨碍C库的内存合并,加剧碎片问题。 4. **处理与定制**: - 为防止碎片积累,可以...
内存池是一种预先分配一大块连续内存空间,并将其分割成多个固定大小的小块内存块,供程序动态分配使用的策略。相比传统的内存分配方式(如C++中的`new`和`delete`,或C语言中的`malloc`和`free`),内存池能提高...
堆:系统将遍历空闲内存地址的链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。 2.3 申请大小的限制 栈:在 Windows 下,栈是向低地址扩展的数据...
动态内存分配是操作系统中内存管理的一种策略,它允许程序在运行时根据需要动态地请求和释放内存。在传统的操作系统中,动态分区分配是为进程分配内存的关键步骤,它涉及到多种分配算法来有效地管理有限的内存资源。...
解决这类问题的方法通常包括确认系统内存是否足够,以及在系统上运行内存检测工具确认内存状态。在某些情况下,可能需要增加物理内存。 其次,交换空间的检查也会失败。交换空间作为物理内存的一种补充,Oracle...
在Windows中,可以使用`GlobalMemoryStatusEx`或`GetPerformanceInfo`函数来获取内存的相关信息,包括总内存、已用内存和空闲内存等。 **空闲内存**(Free Memory)是指当前未被任何进程使用的内存空间,它是衡量...
内存分配算法是操作系统核心部分的关键技术之一,它负责有效地管理和分配计算机内存资源。在这个课程设计中,我们将使用Java编程语言在Eclipse集成开发环境中实现内存分配的模拟。Eclipse因其强大的调试工具和丰富的...
堆:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统...
这种算法在动态分配内存时,旨在优化内存的使用,减少碎片并最大化空间利用率。 可变分区最佳适应算法是一种动态内存分配策略,其主要目标是在分配内存给新作业时,找到当前所有空闲分区中最小但仍能满足作业需求的...
堆:操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时,会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序。 栈:只要栈的剩余...
尽管这样做可以暂时缓解内存压力,但交换空间位于硬盘上,其访问速度远低于内存,因此不应作为长期替代物理内存的解决方案。建议的交换空间大小通常是物理内存的两倍,但不超过2GB。如果需要添加交换空间,有两种...
- 当申请的内存超出栈的剩余空间时,会导致栈溢出错误。 - **堆** - 堆可以利用更多的虚拟内存空间,因此可以申请更大的内存块。 - 堆的内存分配更灵活,但也更容易产生内存碎片。 ##### 2.4 申请效率的比较 - ...
### Oracle空闲空间管理 #### 引言 在Oracle数据库管理中,空闲空间的有效管理对于提高数据库性能至关重要。Oracle数据库在9.2.0版本以前主要采用链表(Freelist)的方式管理空闲空间,但这种方式存在着串行访问...
综上所述,通过优化剪贴板使用、管理运行程序、控制启动项、增加硬盘空间以及正确设置虚拟内存,可以有效解决Windows系统中的内存不足问题,确保系统的顺畅运行。在日常使用中,定期进行这些维护步骤,可以预防内存...
《空闲磁盘存储空间管理:简单方法》 在操作系统(OS)的设计中,有效管理空闲磁盘存储空间是一项至关重要的任务。本项目旨在通过模拟实现不同的空闲磁盘空间管理方法,如空闲表法、空闲链表法、位示图法以及UNIX的...
动态内存分配是编程中一种重要的内存管理方式,它允许程序在运行时根据需要动态地请求内存,而不是在编译期间预设固定的内存空间。在C++编程语言中,动态内存分配主要通过`new`和`delete`关键字来实现。本实验报告...
计算机操作系统内存分配是操作系统核心功能之一,实验报告中主要探讨了在可变分区存储管理方式下,如何实现主存的分配与回收。可变分区管理允许分区大小根据作业需求动态调整,以确保有效利用内存资源。 实验的目标...
首次适应算法(FF)在分配45K和30K内存时,优先选择的第一个满足条件的空闲分区,可能导致较大的空闲分区被切割,增加了内存碎片。而最佳适应算法(BF)虽然能有效利用小的空闲分区,但在长期运行中可能会导致大量小...
- **堆**:系统在堆上分配内存时,需要查找合适的空闲块,如果找到则分配,否则可能需要进行碎片整理或扩大堆空间。 3. **空间大小**: - **栈**:在Windows下,一般为2MB到1MB之间,取决于编译器设置。 - **堆*...
要解决这个问题,一种可能的方案是禁用内存自检任务,这个任务可能会在系统空闲时触发,导致不必要的CPU和内存负载。具体步骤如下: 1. 首先,通过搜索栏或控制面板进入“管理工具”。 2. 在管理工具中找到并打开...