코딩테스트 문제를 풀고 나서 다른 사람의 풀이를 공부할 겸 참고해보면 종종 Map과 Set을 사용하여 푸는 경우가 있다. 객체와 Map의 차이로 가장 큰 차이점은 Map의 키로는 자료형에 제약이 없다는 점이었는데 성능에 차이가 있는지 알아보는 시간을 가졌다.
데이터 갱신 측면에서, Map의 set이 객체의 set보다 2배 느리다.
데이터 조회 측면에서는 Map이 객체보다 10배 더 빠르다.
데이터 갱신 측면의 이유로는 객체의 경우 데이터가 순차적으로 적재되지 않기에 set 활동이 일어나면 아무 빈 공간에 만들어서 값을 넣지만, Map은 순차적으로 데이터를 적재하고 적재하면서 수반되는 추가 활동이 Map의 set 처리에 영향을 주어 객체의 set보다 느려지게 된다.
데이터 조회 측면의 이유로는 객체의 경우 Object.keys()를 사용하여 key 값을 가져온 다음 key를 사용하며 데이터를 직접 찾아와야 하지만, Map의 경우는 배열처럼 순차적으로 놓여 있는 데이터를 순회하면 되기 때문에 조회 속도는 Map이 훨씬 빠르게 된다.
갱신을 자주 하면 객체를, 조회를 자주 하면 Map을 사용해야겠다.
'TIL' 카테고리의 다른 글
TIL - 20221010 (0) | 2022.10.10 |
---|---|
TIL - 20221009 (0) | 2022.10.09 |
TIL - 20221007 (LRU) (0) | 2022.10.07 |
TIL - 20221006 (비트 연산자) (0) | 2022.10.06 |
TIL - 20221005 (continue 정리) (1) | 2022.10.05 |