자바 성능 튜닝 이야기 3주차
자바 성능 튜닝 이야기 3주차
들어가며
이 포스트는 이상민의 「자바 성능 튜닝 이야기」 Chpater4 ~ 5을 읽고 개인적으로 학습한 내용을 정리한 글입니다.
- 책: 자바 성능 튜닝 이야기
- 저자: 이상민
- 출판사: 인사이트
- 챕터: Chapter4 ~ Chapter 5
핵심 내용 정리
4장 어디에 담아야 하는지
Set 클래스 중 무엇이 가장 빠를까?
- HashSet, TreeSet, LinkedHashSet 비교
- 데이터 추가 비교
대상 | 평균 응답 시간(ms) |
---|---|
HashSet | 375 |
TreeSet | 1.249 |
LinkedHashSet | 378 |
- 데이터 조회 비교
대상 | 평균 응답 시간(ms) |
---|---|
HashSet | 26 |
TreeSet | 35 |
LinkedHashSet | 16 |
- 비순차적 데이터 조회
대상 | 평균 응답 시간(ms) |
---|---|
HashSet | 32 |
TreeSet | 841 |
LinkedHashSet | 32 |
- TreeSet
- 데이터를 순서에 따라 탐색하는 작업이 필요하면 TreeSet을 사용
- 순서가 필요없는 경우는 HashSet, LinkedHashSet 사용을 권장
List 관련 클래스 중 무엇이 빠를까?
- ArrayList, Vector, LinkedList 비교
- 데이터를 추가 비교
대상 | 평균 응답 시간(ms) |
---|---|
ArrayList | 28 |
Vector | 31 |
LinkedList | 40 |
- 데이터를 가져오는 경우
대상 | 평균 응답 시간(ms) |
---|---|
ArrayList | 28 |
Vector | 31 |
LinkedList | 40 |
- 데이터 조회 비교
대상 | 평균 응답 시간(ms) |
---|---|
ArrayList | 4 |
Vector | 105 |
LinkedList | 1.512 |
- Vector와 ArrayList의 시간차가 발생하는 이유
- Vector는 synchronized가 걸려있음
- 데이터 삭제 비교
대상 | 평균 응답 시간(ms) |
---|---|
ArrayListFirst | 418 |
ArrayListLast | 146 |
VectorFirst | 687 |
VectorLast | 426 |
LinkedListFirst | 423 |
LinkedListLast | 407 |
Map 관련 클래스 중에서 무엇이 빠를까?
대상 | 평균 응답 시간(ms) |
---|---|
SeqHashMap | 32 |
RandomHashMap | 40 |
SeqHashtable | 106 |
RandomHashtable | 120 |
SeqLinkedHashMap | 34 |
RandomLinkedHashMap | 46 |
SeqTreeMap | 197 |
RandomTreeMap | 277 |
보편적 권장 사항
인터페이스 | 클래스 |
---|---|
Set | HashSet |
List | ArrayList |
Map | HashMap |
Queue | LinkedList |
Collection 관련 클래스의 동기화
- 동기화된 클래스와 아닌 클래스
- 비동기화된 클래스 : HashSet, TreeSet, LinkedHashSet, ArrayList, LinkedList, HashMap, TreeMap, LinkedHashMap
- 동기화 클래스 : Vector, Hashtable
5장 지금까지 사용하던 for 루프를 더 빠르게 할 수 있다고?
조건문에서의 속도는?
- if-else
- switch
대상 | 응답 시간(ms) |
---|---|
randomOnly | 0.46 |
if 10개 | 5 |
if 100개 | 63 |
- if문과 switch 문 사이에 차이는 별로 없음
반복 구문에서의 속도는?
- for
- do-while
- while
대상 | 응답 시간(ms) |
---|---|
for | 410 |
for 크기 반복 비교 | 413 |
for-each | 481 |
블러 효과
This post is licensed under CC BY 4.0 by the author.