2016-09-06 12 views
-1

제 JMeter 테스트에서 JMeter가 클래스 javascript_gen_cmd__xxx를 계속로드하고 테스트에서 설정 한 처리량에 도달 할 수 없다는 것을 알았습니다.Java 8에서는 JVM 매개 변수를 사용하여 클래스를 언로드 할 때 (또는 어떤 조건에서) 제어 할 수 있습니까?

Class loading from JConsole JVisualVM에서 "Perform GC"버튼을 클릭하면 클래스가 언로드되고 처리량에 도달합니다.

그래서 GC가 발생해야 할 시점을 지정할 수 있다면 예를 들어로드 된 총 클래스 수가 특정 수에 도달하면 도움이 될 것이라고 생각합니다.

-XX : MetaspaceSize = 120M을 시도했지만 메타 공간 사용량이 120MB에 도달하면 클래스를 언로드하지 않았습니다.

+0

나는 이것이 커스텀 클래스 로더에 관한 것이기 때문에 다른 문제라고 생각한다. 그러나 이것은 언로드 프로세스가 제어 될 수 있도록 메타 스페이스 파라미터를 설정하는 방법에 관한 것이다. – user1532146

+0

여기서 진짜 문제는 클래스를 계속해서 생성하는 Mozilla JS codegen의 사용입니다. _more_ GC가 여기에서 문제를 해결할 가능성은 거의 없습니다. – bmargulies

답변

0

-XX:MaxMetaspaceFreeRatio=30 -XX:MinMetaspaceFreeRatio=10과 같은 것은 빠르게 채워져 클래스 언로드 GC를 트리거해야합니다.

-XX:+ExplicitGCInvokesConcurrent -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses 및 CMS 또는 G1을 사용하고 타이머를 통해 System.gc()을 실행해도 작동합니다.

+0

두 번째 솔루션을 만들었습니다. – user1532146