본문 바로가기
728x90
반응형

잡담20

heap vs TreeMap<key, list> treemap());vsPriorityQueueNode(String, String); 과연 어느게 더 메모리를 적게 먹고, 시간을 적게 소요할까요? 코드를 작성하는 와중에 단순 PriorityQueue에 데이터를 넣다보면, java heap memory error가 발생할 거 같다는 생각을 하게 되었습니다. 간단한 이유로는하나의 바구니에 데이터를 모두 담는가 vs 여러 바구니에 나눠서 담는가 에 대하여 생각해보면 당연 후자가 더 효율적이라고 생각했기 때문입니다. 이를 증명하기 위하여 하나의 테스트과정을 거치게 되었습니다. Map의 소스는 이러합니다.Map> map = new TreeMap();for(int i = 0; i ()); for(int j = 0; j  PriorityQueue의 소스는 이러합니.. 2024. 5. 19.
Map<String, List<String>> 관련 clear() 자바에서 특정 key에 대한 value로 list를 지정하여 해당 key에 대하여 값들을 모아두는 형태로 코드를 작성하는 경우가 있습니다. Map map = new HashMap(); 이런 경우 GC가 발생하게 된다면 어떻게 될까요? 값들을 저장해서 계속 사용한다면 괜찮겠지만, 이렇게 만들어두고 값을 전달한 후, 더이상 사용하지 않는 경우에서 gc가 발생할 경우? 이런 형태로 해당 값이 사용중인지 확인하는 단계를 거치게 될 것입니다. '그치만 값 전달 후 map.clear()를 통해 map을 비워버리면? gc는 해당 map이 바로 사용하지 않는 상태라는 것을 확인하여 지우는데 오랜 시간이 걸리지 않을까?' 라는 생각을 하게 되었습니다. map.clear()를 하면 gc가 발동하기 전 실제 프로그램 속도에.. 2024. 2. 26.
변수 선언 후 인자 전달 vs 인자 전달 개발을 진행하던 중, 한가지 궁금점이 들었습니다. String s = "1"; print(s); print("1") 의문점 둘 중 어느게 빠를까? 둘의 메모리 사용량은 같을까? 다르다면, 어느게 메모리를 적게 사용할까? 정확하게 분석이 불가능하여 시간 측정 및 메모리 측정을 하였습니다. 1. String s; for (int i = 0; i < 1000000000; i++) { s = "1"; print(s); } 2. for(int i = 0; i < 1000000000; i++){ print("1"); } 해당 코드들로 시간 측정을 하였고, 함수는 System.currentTimeMillis() 을 사용하였습니다. 결과 1. 시간차이(ms) : 5 2. 시간차이(ms) : 4 미세하게 변수를 선언하지.. 2024. 2. 14.
2023년 회고 / 2024년 목표 2023년을 돌아보면서, 다가올 2024년의 목표를 정리해보기 위해 적어보았다. 2023년 회고 1. 취업을 했다. 2023년 5월 검색 관련 개발직을 맡게 되었다. 2. 알고리즘 2023년 1월 1일 기준 2455 solve에서 3375solve 1년동안 920문제 대략 하루에 평균 2.52문제를 풀은 셈이다. 백준을 통해 운영진으로서 좋아하는 게임의 IP를 활용한 대회를 개최해 보았다. (https://lms0806.tistory.com/184) solved 티어 2020년은 실버1, 2021년은 플레5, 2022년도 플레5, 2023년은 플레4로 마무리하였다. 문자열은 JAVA, 나머지는 CPP를 활용해서 문제를 풀면서 CPP 활용능력을 키우고 있다. 3. 개발 메이플스토리 월드를 통해 게임을 개발.. 2024. 1. 17.
728x90
반응형