Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- ArrayList
- 정렬
- 이진탐색트리
- maven
- RAM
- 스레드
- Git
- netstat
- trunc()
- 오라클 trunc()
- trunc(date)
- stack
- queue
- heap
- Servlet
- git push
- null
- 프로세스 종료
- cpu
- url
- 오라클 버림 함수
- MAP
- desc
- web
- ssd
- 멀티스레드
- 스케줄 삭제
- HDD
- HashMap
- trunc(sysdate)
Archives
- Today
- Total
無테고리 인생살이
[개발용어] Load Factor, Threshold란? 본문
Load Factor란?
용량 대비 데이터가 어느정도 찼을 때 내부적으로 사이즈 확장을 필요로하는 자료구조에서 사용되는 개념이다.
언제 사이즈를 늘려야하는지,
즉, 몇 번째 데이터를 추가할 때, 사이즈를 늘려야 하는지를 결정하는 척도, 기준
default 로드팩터는 0.75f 이다.
Load Factor를 어떤 용도로 사용할까?
사이즈가 가변적인 자료구조에 쓰이며 current capacity와 곱을 이뤄,
사이즈를 증가시켜야 하는 시기(=임계점)을 결정하는데 사용된다.
로드팩터가 존재하는 대표적인 자바 컬렉션 프레임워크
- ArrayList
- HashMap
- Hashtable
- ConcurrentHashMap
- HashSet
- 등등..
일반적으로 default load factor는 0.75이지만,
ArrayList의 load factor는 1 이다.
StringBuilder에도 Load Factor 가 존재할까?
- ArrayList와 StringBuilder는 동작과정이 비슷하지만, StringBuilder에는 로드팩터가 업다.
스트링빌더는 capacity가 꽉 찼을 때, 사이즈를 2배 증가시킨다.
Threshold란?
: 임계점, 한계점, 문지방
로드팩터와 같이 쓰이는 개념이다.
특정 자료구조의 현재 용량과 지정된 로드팩터를 곱해 나오는 결과값을 threshold(임계점)이라고 한다.
해당 임계점에 도달했을 때, 내부적으로 사이즈를 늘리는 로직이 실행된다.
임계점 계산법
Threshold = current capacity * load factor
EX) 언제 HashMap의 버킷 사이즈 업?
기본 생성자로 HashMap 객체를 생성했다.
default capacity = 16, default load factor = 0.75f
16 * 0.75 = 12
=> put() 메서드로 12번째 데이터를 추가할 때, 사이즈가 2배 증가한다.
'기타' 카테고리의 다른 글
[개발용어] Failover, Failback이란? (0) | 2023.01.25 |
---|---|
[개발용어] 멱등성이란? (0) | 2023.01.25 |
[개발용어] boiler-plate code란? (0) | 2022.12.20 |
[Algorithm] 시간복잡도와 빅오표기법 (0) | 2022.12.19 |
[개발용어] Memory Leak이란? (0) | 2022.12.15 |