ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자바 성능 튜닝 이야기 정리 1편
    java 2020. 7. 31. 13:15

    프로파일링 툴

    • 소스 레벨 분석을 위한 툴 (성능 개선)
    • 메모리 사용량을 객체나 클래스, 소스의 라인 단위까지 분석할 수 있음

    APM 툴

    • 애플리케이션의 장애 상환에 대한 모니터링 및 문제전 진단이 주 목적
    • 서버의 사용자 수나 리소스에 대한 모니터링

    String 관련 클래스

    • StringBuilder : Thread unsafe
    • StringBuffer : Thread safe
    // jdk 5 이전 문자열 더하기 
    public void appendText() {
    	int c = 1; 
        String a = "That is coke"; 
        String b = "I love" + i + "coke"; 
    } 
    
    // jdk 5 이후에는 컴파일시 아래와 같이 변환된다. 
    public void appendText() { 
    	int c = 1; 
        String a = "That is coke"; 
        String b = new StringBuilder().append("I love")
        	.append(i) 
            .append("coke")
            .toString(); 
    }

    Set

    • HashSet : 해쉬 테이블에 순서 없이 저장
    • TreeSet : 데이터를 정렬해서 담으므로 성능이 느림
    • LinkedHashSet : 저장된 순서에 따라 순서 결정

    List

    • Vector : 객체 생성시에 크기를 지정할 필요가 없는 배열 클래스, Thread safe
    • ArrayList : Vector와 비슷하지만, 동기화 처리 x
    • LinkedList : Queue 인터페이스를 구현했기 때문에 FIFO 큐 작업을 수행

    Map

    • Hashtable : 해쉬 테이블에 담는 클래스, Thread safe
    • HashMap : 해쉬 테이블에 담는 클래스, null 값 허용, 동기화 X
    • TreeMap : 키에 의해서 순서가 정해짐
    • LinkedHashMap : HashMap과 거의 동일, 이중 연결 리스트를 사용

    댓글

Designed by Tistory.