우리의 응용 프로그램에서 원격 프로 시저 호출은 자체 netty 기반 명령 디스패처 시스템으로 해결됩니다. 우리는 많은 모듈 (약 20 개)을 가지고 있으며 모든 모듈을 별도의 jvm-s에서 실행하려고합니다. 내 문제는 RMI가 각 JVM에 대해 약 17 개의 스레드를 생성한다는 것입니다. 나는 (내가 아는 한) RMI를 전혀 필요로하지 않는다.Java 응용 프로그램에서 RMI를 완전히 비활성화하는 방법이 있습니까?
jvm에서 RMI를 완전히 비활성화 할 수 있습니까? 또는 최소한이 스레드를 사용하지 않는 방식으로 구성하십시오.
RMI를 사용하지 않는 경우 해당 스레드는 아무 작업도 수행하지 않습니다. 너무 조기에 최적화 된 것처럼 들립니다. –
톰에게 감사드립니다. 한 대의 머신에서 20 개의 JVM이 실행될 때 사용되지 않는 스레드가 340 개 있습니다. 이것은 이미 하중에서 볼 수 있습니다. RMI가 사용하지 않는 쓰레드 17 개 (!)가 필요한 이유를 정말로 이해하지 못합니다. 이것은 'postmature'최적화입니다. – Szobi
@Szobi 따라서 잠자는 스레드가 340 개이므로 성능에 영향을 줄 수있는 유일한 방법은 32 비트 Java에서 실행 중이고 가상 주소 공간이 부족한 경우입니다. 그게 아니라면, 그 스레드가 당신에게 정확히 무엇을 할 것이라고 생각합니까? – Voo