- 당신은 어디에 이해하는 JProfiler와, yourkit, 또는 다른 프로파일 링 도구를 사용해야합니다 수 있도록하는 코드 수준에서 병목 현상입니다. 가능한 장소에 대한
어떤 생각을 볼 수 있습니다 :
XML 및 직렬화 :
1. 내가 JAXB와 함께 몇 가지 성능 문제를 보았다.
XML은 필수입니까? 성능면에서 내가 아는 대부분의 JSON 시리얼 라이저는 JAXB보다 낫다.
2. 또한 모든 데이터를 직렬화해야하고 일부 데이터가 일시적으로 변경되지 않아야한다고 생각합니다. 3. XML 문서 (DOM)로 작업하면 성능이 저하됩니다.
DB :
1. 오라클 DB 쿼리를 분석하기 위해 explain을 사용하십시오. (이것이 오라클에서 호출 된 방법입니다. 실행 계획을 보여주고 개선 방법을 찾을 수 있도록 설명합니다.) .
2. 저장 프로 시저의 사용을 고려하십시오.이 프로 시저는 Oracle 서버에서 컴파일되며 성능이 향상됩니다 (생성 된 쿼리와 비교).
3. DB에서 적절한 색인을 사용하십시오.
4. 일부 경우 조인을 제거하면 데이터 복제 (예, 추울 수 있음)를 고려하십시오.
5. IN 대 EXISTS와 같은 문제를 이해하고 어느 것이 사용해야하는지.
데이터 액세스 레이어 :
1. DB에 대한 중복 쿼리를 피하기 위해 일부 엔티티 캐시 (즉, 1 레벨 또는 2 레벨 캐시 (최대 절전 모드) 또는 자체 구현)를 사용할 수 있는지 확인하십시오.
6. 동시 처리 -
충분한 정보를 제공하지 않았습니다.
1. 가능하면 ReaderWriterLock을 사용하고 "동기화"하지 말아야합니다.
2. 가능한 짧게 코드 영역을 동기화하십시오.
3.JDK 6으로 이동! 거기서 동기화 된 성능이 향상되었다고 들었습니다. 7. 트랜잭션 :
1. 트랜잭션은 값 비싼 리소스이므로 "읽기 전용"코드 흐름을 위해 트랜잭션을 열지 않도록하십시오.
2. 가능한 한 트랜잭션이 짧아야합니다.
나는 계속해서 갈 수 있지만 실제로 결과 + 시스템에 대해 더 설명해야합니다. 그래서 우리는 여러분에게 직접 지시 할 수 있습니다.
모든 최적화 작업은 병목 현상을 진단하기 위해 프로파일 링으로 시작됩니다. –