我正在运行 Java 应用程序并收到以下消息:
Exception in thread "main" java.lang.OutOfMemoryError: Cannot allocate new BytePointer(1200): totalBytes = 3G, physicalBytes = 7G
at org.bytedeco.javacpp.BytePointer.<init>(BytePointer.java:103)
at org.nd4j.compression.impl.NoOp.compressPointer(NoOp.java:73)
at org.nd4j.compression.impl.AbstractCompressor.compress(AbstractCompressor.java:131)
at org.nd4j.compression.impl.AbstractCompressor.compress(AbstractCompressor.java:103)
at org.nd4j.storage.CompressedRamStorage.store(CompressedRamStorage.java:68)
at org.deeplearning4j.models.embeddings.loader.WordVectorSerializer.loadStaticModel(WordVectorSerializer.java:2638)
at com.dl.SentimentClassifier.main(SentimentClassifier.java:76)
Caused by: java.lang.OutOfMemoryError: Physical memory usage is too high: physicalBytes = 7G > maxPhysicalBytes = 7G
at org.bytedeco.javacpp.Pointer.deallocator(Pointer.java:572)
at org.bytedeco.javacpp.Pointer.init(Pointer.java:121)
at org.bytedeco.javacpp.BytePointer.allocateArray(Native Method)
at org.bytedeco.javacpp.BytePointer.<init>(BytePointer.java:95)
我的 Windows 笔记本电脑有 16G 内存,我在 Intellij 中将 Java 堆大小设置为:
-Xms128m
-Xmx10G
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
该消息是什么意思?我认为它说 Java 应用程序需要 7G 内存,而我的堆设置是 > 7G。如果是这样,为什么它会发送 OutofMemory 错误?
您混合了为从 IntelliJ IDEA 启动的应用程序指定的 IntelliJ IDEA JVM 选项和 VM 选项。
你的问题中的片段是.vmoptions
IntelliJ IDEA 的文件,它应用于运行 IntelliJ IDEA 本身的 JVM。
您自己的应用程序在单独的 JVM 中运行,该 JVM 不会继承 IntelliJ IDEA JVM 的 VM 选项。
应用程序的 JVM 设置可以在相应的位置进行调整运行/调试配置 https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html, 虚拟机选项 field.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)