[英]OutOfMemoryException: When reading 11GB XML using simple groovy getting memory error but when reading using plain JAVA not error
我正在使用下面的簡單groovy腳本重做一個11GB的大型XML。 1. Groovy-產生內存錯誤。 2. Java-沒有內存不足錯誤
這兩個代碼均在InteliJ Idea社區版上使用默認VM內存執行。
常規代碼
def is = new File("TOPOLOGY.xml").newInputStream()
is.eachLine { line ->
println(line.size())
}
JAVA代碼
public class ReadXMLJavaLocal {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(new File("TOPOLOGY.xml"))) {
while (scanner.hasNext()) {
System.out.println(scanner.nextLine().length());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
期望理解導致內存異常的常規代碼的錯誤。
看來您的Groovy代碼正在為文件和輸入流定義一個變量,而您的Java僅為掃描程序對象定義了一個變量。
然后,Groovy代碼中的is
變量必須存儲11GB文件的所有數據。 Java遍歷文件時僅一次打印一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.