성능 향상을 위해 응용 프로그램을 프로파일 링하는 데 약간 익숙합니다. Your Profiler로 YourKit을 선택했습니다. YourKit이 매우 흥미로운 통계를 제공한다는 것은 의심의 여지가 없습니다. 내가 붙어있는 곳은이 통계와 관련이있다.Java EE 애플리케이션 프로파일 링 - 찾아야 할 사항과 변경해야 할 사항은 무엇입니까?
예를 들어, JAXB POJO에서 작동하는 방법을 고려해보십시오. 이 메소드는 POJO를 반복하여 XML 내부에 깊이 중첩 된 태그/요소에 액세스합니다.
List<Bundle> bundles = null;
List<Item> items = null;
for(Info info : data) {
bundles = info.getBundles();
for(Bundle bundle : bundles) {
items = bundle.getItems();
//.. more loops like this till we get to the required element
}
}
YourKit 위의 코드는 쓰레기에 대한 각 호출에 대해 수집지고는 '핫 스팟'80 개체임을 알려줍니다 : 아래 그림과 같이이 루프 요소/태그에 도착하기 4 층을 필요로 이 코드를 포함한 메소드 위의 코드는 단지 예일 뿐이며 내가 갇혀있는 부분이 아닙니다. 대부분의 경우 프로파일 러에서 제공 한 정보를 어떻게 처리해야하는지에 대한 단서가 없습니다. 위의 코드에서 임시 객체의 수를 줄이려면 어떻게해야합니까? 응용 프로그램의 성능을 손상시키기 위해 잘 정의 된 원칙이 있습니까? 응용 프로그램을 프로파일 링 할 때 어떤 통계를 찾고 각 종류의 통계에는 어떤 영향이 있습니까?
편집 : 응용 프로그램을 프로파일 링하는 주된 목적은 처리량과 응답 시간을 늘리는 것입니다. 현재 처리량은 필요한 처리량의 10 %에 불과합니다!
성능 목표 (응답 시간, 처리량, CPU 사용 및 메모리 사용)에 따라 달라집니다. – meriton
주로 처리량 및 응답 시간에 관심이 있습니다. 우리는 충분한 메모리와 매우 강력한 프로세서를 가지고 있습니다! – CKing