유닉스 박스에서 다음 명령을 실행하고 있습니다.java OutOfMemoryError
자바 -Xms3800m -Xmx3800m org.apache.xalan.xslt.Process -out CUST.TXT -in test13l.xml -xsl CustDetails.xsl
그 것이다 통해 파싱 Xalan에 프로세서를 호출하는 자바 명령 xsl 스타일 시트 (CustDetails.xsl)를 사용하여 xml 파일 (test131.xml)을 만들고 Cust.txt를 반환합니다.
명령이 제대로 작동하고 출력이 생성됩니다. 1.1GB의 xml 파일 크기를 처리하는 데 12 분이 걸립니다. 1.44GB의 파일 크기를 처리하는 데 22 분이 걸립니다. 나는 1.66 GB의 파일 크기를 처리하려고 할 때, 다음과 같은 메시지와 그 오류 아웃 :
는XSLT 오류 (java.lang.OutOfMemoryError와) (오류 알 수없는 위치) : null가
내가 증가 3800 Java 힙 크기를 내가 뭘 더 할 수 있는지 확실하지 않습니다.
많은 도움에 감사드립니다.
Xms 및 Xmx 매개 변수를 설정해도 JVM이 해당 양의 메모리를 힙에 할당한다는 것을 보장 할 수 없습니다. http://stackoverflow.com/questions/171205/java-maximum-memory-on-windows-xp http://www.unixville.com/~moazam/ 아래의 링크에서보세요 아마도 SAX 파서를 사용하고 파일에 직접 저장하는 것과 같은 다른 최적화를 고려해야합니다. – saugata