java.lang.OutOfMemoryError: Java heap space in Eclipse, regardless of the settings
java.lang.OutOfMemoryError: Java heap space in Eclipse, regardless of the settings
我正在测试一个在 Eclipse 中使用 Mahout 构建的简单推荐系统。
如果首选项文件太大,我会收到此错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.lang.String.substring(String.java:1939)
at java.lang.String.subSequence(String.java:1972)
at com.google.common.base.Splitter$SplittingIterator.computeNext(Splitter.java:612)
at com.google.common.base.Splitter$SplittingIterator.computeNext(Splitter.java:522)
at com.google.common.base.AbstractIterator.tryToComputeNext(AbstractIterator.java:64)
at com.google.common.base.AbstractIterator.hasNext(AbstractIterator.java:59)
at com.google.common.base.AbstractIterator.next(AbstractIterator.java:74)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processLine(FileDataModel.java:408)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processFile(FileDataModel.java:363)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.buildModel(FileDataModel.java:259)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.reload(FileDataModel.java:231)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:221)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:169)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:149)
at com.predictionmarketing.itemrecommend.ItemRecommend.main(ItemRecommend.java:35)
该文件包含大约 500 万个偏好点。
我已经阅读了几条关于这个问题的消息,我的eclipse.ini如下
-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
3000m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=3000m
-Xms3000m
-Xmx6000m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
基本上我添加了 -Xmx6000m 并将 -Xmx 和 MaxPermSize(两者)更改为 3000m。
我对Java不是很流利所以我不知道设置是否正确,但是在执行过程中我可以看到类似
的东西
Heap size: 55M of total 3017M max 5996 mark 55M
这似乎反映了设置。
奇怪的是,在执行期间我没有看到堆大小增加太多,而且我的计算机中的可用内存 (mac os) 约为 800M。
问题出在哪里?
如果首选项文件较小,则一切正常。
阅读Java Heap Space - How does -Xmx work exactly?
和
http://javarevisited.blogspot.gr/2011/05/java-heap-space-memory-size-jvm.html
Java 每个系统的堆都不一样我认为在 Windows 例如默认 java 堆是 60 Mb
eclipse.ini 设置仅用于 Eclipse 应用程序。
当您 运行 来自 Eclipse 的 Java 应用程序时,您需要转到 'Run > Run Configurations'。在 Java 应用程序列表中找到您的应用程序。在 'Arguments' 选项卡的 'VM arguments' 部分中输入您的内存设置。
我正在测试一个在 Eclipse 中使用 Mahout 构建的简单推荐系统。
如果首选项文件太大,我会收到此错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.lang.String.substring(String.java:1939)
at java.lang.String.subSequence(String.java:1972)
at com.google.common.base.Splitter$SplittingIterator.computeNext(Splitter.java:612)
at com.google.common.base.Splitter$SplittingIterator.computeNext(Splitter.java:522)
at com.google.common.base.AbstractIterator.tryToComputeNext(AbstractIterator.java:64)
at com.google.common.base.AbstractIterator.hasNext(AbstractIterator.java:59)
at com.google.common.base.AbstractIterator.next(AbstractIterator.java:74)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processLine(FileDataModel.java:408)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.processFile(FileDataModel.java:363)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.buildModel(FileDataModel.java:259)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.reload(FileDataModel.java:231)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:221)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:169)
at org.apache.mahout.cf.taste.impl.model.file.FileDataModel.<init>(FileDataModel.java:149)
at com.predictionmarketing.itemrecommend.ItemRecommend.main(ItemRecommend.java:35)
该文件包含大约 500 万个偏好点。
我已经阅读了几条关于这个问题的消息,我的eclipse.ini如下
-startup
../../../plugins/org.eclipse.equinox.launcher_1.3.0.v20140415-2008.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.200.v20140603-1326
-product
org.eclipse.epp.package.java.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
3000m
--launcher.defaultAction
openFile
--launcher.appendVmargs
-vmargs
-Dosgi.requiredJavaVersion=1.6
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-XX:MaxPermSize=3000m
-Xms3000m
-Xmx6000m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
基本上我添加了 -Xmx6000m 并将 -Xmx 和 MaxPermSize(两者)更改为 3000m。 我对Java不是很流利所以我不知道设置是否正确,但是在执行过程中我可以看到类似
的东西Heap size: 55M of total 3017M max 5996 mark 55M
这似乎反映了设置。
奇怪的是,在执行期间我没有看到堆大小增加太多,而且我的计算机中的可用内存 (mac os) 约为 800M。
问题出在哪里? 如果首选项文件较小,则一切正常。
阅读Java Heap Space - How does -Xmx work exactly?
和
http://javarevisited.blogspot.gr/2011/05/java-heap-space-memory-size-jvm.html
Java 每个系统的堆都不一样我认为在 Windows 例如默认 java 堆是 60 Mb
eclipse.ini 设置仅用于 Eclipse 应用程序。
当您 运行 来自 Eclipse 的 Java 应用程序时,您需要转到 'Run > Run Configurations'。在 Java 应用程序列表中找到您的应用程序。在 'Arguments' 选项卡的 'VM arguments' 部分中输入您的内存设置。