2013-01-15 2 views
0

자바를 죽이는 : 1.6 OS : 윈 XP명령 줄 자바 실행 및

내가 만든 자바 프로그램을 개막 내가 만든 예약 된 작업과 관련된 문제가되고있다. 문제는 프로그램이 중대한 방식으로 프로그램을 중단시키는 원인이되는 많은 양의 데이터를 사용한다는 것입니다.

나는 한꺼번에 실행할 필요가 없으므로 프로그램을 다른 섹션으로 나누었지만 예약 된 작업을 위해 .cmd 파일을 작성하는 방법을 잘 모르겠습니다. 각 조각을 실행하고 각 조각을 실행 한 후에 Java/kill 가비지 수집을 실행하고 다음 작업을 실행해야합니다.

원래 편 :

java -jar CommandLine.jar -f p d pr d dr d e d qp d ea d pa d pb d as d ndp d g d sc d 2> ErrorLog\cmdErrorLog.txt 

각 조각은 P D의 홍보 또는 D로 표시된다.

그럼 실제로 자바를 중지 하시겠습니까?

java -jar CommandLine.jar -f pr d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f dr d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f e d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f qp d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f ea d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f pa d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f pb d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f as d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f ndp d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f g d 2> ErrorLog\cmdErrorLog.txt 
java -jar CommandLine.jar -f sc d 2> ErrorLog\cmdErrorLog.txt 

또는 각 부분 사이에 자바를 죽일 수있는 더 좋은 방법이있다 : (테스트는 하드 원인 메신저 실행했을 때 영향을받을 라이브 데이터 세트에서 실행)? 정말로 메모리를 비우고 Java를 다시 시작해야합니다.

또한 Java가 실행되는 상자에서 가능한 한 많은 Java 메모리를 제공합니다.

어떤 도움이 통찰력이나 도움이된다면 도움이 될 것입니다.

감사합니다.

답변

1

Java를 실행할 때마다 새롭고 독립적 인 JVM을 나타냅니다. 따라서 여러 번 실행하면 분명히 다음 인스턴스가 시작되기 전에 모든 메모리를 완전히 포기할 수 있습니다.

CommandLine 프로그램을 쉽게 수정할 수 있으면 Main 프로세스를 사용하여 동일한 프로세스 내에서 작업을 분할하는 것이 더 효율적입니다. 기본적으로 여러 JVM 실행으로 수행하는 작업을 정확하게 수행 할 수 있지만 매번 새로운 JVM을 중지/시작할 필요가 없습니다. 즉, 가라비게 수집기가 작업을 수행 할 수 있도록 각 반복마다 모든 리소스를 포기하려면 프로그램을 올바르게 작성해야합니다.

+0

답변 주셔서 감사합니다. 올바르게 설정되어 있고 가비지 수집이 각 조각 사이에서 실행되고 있지만 컴퓨터가 섹션 중 하나만 처리하는 데 문제가있는 것입니다. – littlevahn

+0

jvm 프로세스가 완전히 종료 된 경우 JVM 가비지 수집이 실행되거나 실제로는 관련성이 없어지고 운영 체제에서 JVM에 제공하는 메모리가 전체적으로 회수되었습니다. – kaliatech