- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
人。这是一个非常常见的错误,但无论我做什么,我似乎都找不到解决方法。我使用 IDEA IntelliJ,很长一段时间以来,我一直在尝试实现一个有效的语义角色标签 (SRL) 系统,最后,我决定使用 PathLSTM 模型 ( https://github.com/microth/PathLSTM) 来做同样的事情。
问题是,这个算法依赖于2.7G大小的模型文件来进行解析操作。( https://drive.google.com/uc?id=0B5aLxfs6OvZBYUk2b0hLZjNqY3c&export=download )
这会导致堆空间不足 - 内存不足错误
Loading pipeline from
C:\Users\Vyso\Downloads\NLP\SRL\SEMAFOR\absSemafor\LTH\wttv\PathLSTM-pre-
illinois-built\srl-ACL2016-eng.model
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.lang.reflect.Array.newInstance(Array.java:75)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1883)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1529)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1919)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1529)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1919)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1529)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2231)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2155)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2013)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1535)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:422)
Process finished with exit code 1
很自然地,我更改了系统上 JVM 和 IDE 的堆空间,我可以在其中更改 vmoptions,如下所示。 (默认情况下是 -Xms128m 和 -Xmx512m)。
# custom IntelliJ IDEA VM options
-Xms2048m
-Xmx4000m
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
但即使在分配了大约 4G 作为最大堆空间之后,我仍然收到错误。有趣的是,在我的 IDE 的内存管理工具栏中,我可以看到代码在运行时最多只使用 500m,所以我真的不知道为什么仍然会抛出这个堆空间错误。
也许这只是我这边的一个初学者级别的错误,但我已经尝试解决这个问题好几天了,如果有人能指导我如何做,我将不胜感激摆脱这个错误。
谢谢。
最佳答案
这里有两个不同的 JVM 实例:
我怀疑这里的问题出在运行 PathLSTM 的 JVM 上。要为 -Xms
、-Xmx
授予此非默认值,您需要转到 Run > Edit Configurations ...
然后选择运行PathLSTM 调用的配置,然后将 -XmsNNNm -XmxYYYm
添加到 VM options
输入。
您可以使用 JVisualVM (您会在 JDK 的 bin 目录中找到它)以查看运行 PathLSTM 时使用了多少内存。启动 IDEA,然后启动 JVisualVM,您会在应用程序 TreeView 的本地节点下看到一些东西(可能名为“Idea”),然后启动任何运行 PathLSTM 的东西,您会看到另一个条目出现在本地节点下,单击它,然后选择监视器选项卡。默认情况下,右上方显示的图表显示所选应用程序的内存使用情况。您可能会看到使用的堆不断增长,直到该进程出现 OOM,然后更改 Run > Edit Configurations ...
中的 -Xmx
并重试,直到找到所需的值.或者,选择一个非常大的值,然后让 JVisualVM 向您显示实际使用的最大值,然后编辑您的 -Xmx
以匹配该最大值。
这里的重点是:
Run > Edit Configurations ...
关于Java - 奇怪的堆空间错误不断被抛出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45402473/
安装并修复我的 VS2015 实例后,我仍然无法让智能感知(服务器端)在我的 MVC View 中工作。当我在 session 中第一次打开 .cshtml 文件并找到 Activitylog 文件时
我是一名优秀的程序员,十分优秀!