首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ubuntu 14 JVM -无法为卡片标记数组预留足够的空间。

Ubuntu 14 JVM -无法为卡片标记数组预留足够的空间。
EN

Ask Ubuntu用户
提问于 2014-09-23 20:21:19
回答 1查看 916关注 0票数 -1

升级到Ubuntu 14之后,我对所有JVM崩溃都有异议。

我重新安装了Java (oracle和openjdk版本)。我花了一些时间来调优JVM堆参数,现在我终于可以运行Java应用程序了。

现在的问题是,每次启动SQLDeveloper时,Eclipse都会给我:“无法为卡片标记数组预留足够的空间”。

如果我正确理解,这与JVM内存块分配有关。

为了防止这种情况发生,我必须遵守规则吗?

机器信息:

Ubuntu14.04LTS;64位;CPU Intel Core2 Duo;8GB内存Eclipse: Java-7-甲骨文;-d64;-XX:MaxPermSize=256M;-Xms512m -Xmx512m;Eclipse /Debug:Java6-OpenJDK-AMD 64;-Xms1024m;-Xmx1024m;-XX:+UseSerialGC;SQLDeveloper: Java7-Oracle;-XX:MaxPermSize=256M;

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2014-10-23 14:09:10

JVM正在尝试分配一个连续的内存块。因为我在系统上有足够的内存,所以它必须是零碎的。

为了解决这个问题,我将初始堆大小设置为非常低(默认128没有工作),并允许JVM处理它。

我将JVM执行参数更改为:

代码语言:javascript
运行
复制
java-6-openjdk-amd64; -Xms1024m; -Xmx1024m; 

至:

代码语言:javascript
运行
复制
java-6-openjdk-amd64; -Xms64m; -Xmx1024m; 

更新:

我还将overcommit_ratio从100 (默认)降低到50。

代码语言:javascript
运行
复制
$ cat /proc/sys/vm/overcommit_ratio

我知道建议保留100,但是由于我已经做了更改,所以当我并行运行Chromium/Eclipse/SQLDeveloper时,不会得到jvm错误。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/527629

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档