동일한 OS(Windows 7) 및 동일한 Java 버전을 실행하는 보다 강력한 시스템에서 느리게 실행되는 것으로 보이는 Java 애플리케이션이 있습니다. 느리게 실행된다는 것은 예를 들어 탭을 전환하거나 버튼을 누르려고 할 때 응답 시간이 항상 지연된다는 의미입니다.
왜 이런 일이 일어날 수 있습니까?
답변1
이는 Java 애플리케이션 아키텍처에 문제가 있을 수 있습니다. 불필요한 스레드 및 인스턴스 로딩과 오용된 로직(조건 확인 및 루핑)이 많이 있을 수 있습니다. JVM에 충분한 메모리 할당이 있는지 추가로 확인하세요. 그렇지 않으면 더 이상 사용되지 않는 API를 사용할 수 있습니다.
이것은 당신에게 도움이 될 수 있습니다
Elasticsearch 테스트는 속도가 매우 느릴 때 더 이상 사용되지 않는 API를 사용합니다. · 문제 · GitHub
답변2
시스템이 정상적으로 실행 중일 수 있지만 버튼 클릭, 탭 전환 등과 같은 이벤트를 처리하는 동안 호출하는 서비스, 서비스 세트에는 시간이 걸릴 수 있습니다.
우리는 처음에는 여러 스레드가 동시에 실행되거나 너무 많은 로깅으로 인해 애플리케이션이 느리게 실행되는 것처럼 보이는 동일한 종류의 시나리오에 직면했습니다. 그러나 추가 분석을 통해 프로세스 엔진 작업이 동기적으로 이메일을 보낼 때 시간이 많이 걸리고 때로는 메일 전송에 실패한다는 사실을 발견했습니다. 다른 팀에서도 메일 전송 속도가 느려지는 현상이 관찰되었습니다. 이는 SMTP 서버 측의 일부 문제로 인해 발생했습니다. SMTP 서버 끝에서 문제가 해결되면서 속도 저하가 사라졌습니다.
이메일 전송 프로세스를 비동기식으로 만들어 더욱 최적화했습니다.