簡體   English   中英

線程“ main”中的異常java.lang.OutOfMemoryError:Java堆空間未固定

[英]Exception in thread “main” java.lang.OutOfMemoryError: Java heap space not fixed

這不是一個重復的問題,我看到 ,我想運行一個Java prograrm並出現以下錯誤:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at edu.stanford.nlp.ie.crf.CRFLogConditionalObjectiveFunction.empty2D(CRFLogConditionalObjectiveFunction.java:892)
    at edu.stanford.nlp.ie.crf.CRFLogConditionalObjectiveFunction.<init>(CRFLogConditionalObjectiveFunction.java:134)
    at edu.stanford.nlp.ie.crf.CRFLogConditionalObjectiveFunction.<init>(CRFLogConditionalObjectiveFunction.java:117)
    at edu.stanford.nlp.ie.crf.CRFClassifier.getObjectiveFunction(CRFClassifier.java:1792)
    at edu.stanford.nlp.ie.crf.CRFClassifier.trainWeights(CRFClassifier.java:1798)
    at edu.stanford.nlp.ie.crf.CRFClassifier.train(CRFClassifier.java:1713)
    at edu.stanford.nlp.ie.AbstractSequenceClassifier.train(AbstractSequenceClassifier.java:763)
    at edu.stanford.nlp.ie.AbstractSequenceClassifier.train(AbstractSequenceClassifier.java:751)
    at edu.stanford.nlp.ie.crf.CRFClassifier.main(CRFClassifier.java:2917)

根據這個,我試試這個:

java -Xms2000m -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop fa.prop 

但錯誤無法解決,我再次看到錯誤! 當我設置的值超過2000m時,我的操作系統崩潰了,或者我得到了以下輸出:

...
...
//stanford log
...

Time to convert docs to data/labels: 8.8 seconds
Killed

我該如何解決

編輯:

為此

[stanford-ner]$ java -Xms1G -Xmx50G -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop fa.prop

我有這個錯誤:

[1000][2000][3000][4000][5000][6000]OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f04c7c00000, 1225785344, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 1225785344 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /stanford-ner/hs_err_pid1536.log

與其嘗試使用Xms選項,

java -Xms2000m -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop fa.prop

嘗試使用Xmx,如下所示,

java -Xmx2000m -cp stanford-ner.jar edu.stanford.nlp.ie.crf.CRFClassifier -prop fa.prop

參考: 線程“主”中的異常java.lang.OutOfMemoryError:Java堆空間

從軟件的目的來看,它很可能會占用大量內存,因此可以合理地假設1GB的堆不夠用,因此您必須進一步增加堆大小。

當您嘗試使用時收到的消息暗示您正在使用

  • 32位操作系統或
  • 32位VM

這可能都將您的最大堆大小限制為約1.5GB(至少在Windows上)。

因此,請確保在64位OS上使用64位VM,然后再次嘗試增加堆大小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM