본문 바로가기
728x90
반응형

java108

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.
.yaml 파일 수정하기 기본적으로 .yaml파일을 읽어오는 방법은 2가지가 존재합니다.1. class를 활용하여 값을 저장하기2. new Yaml()을 활용해서 map형태로 받아오기 class를 활용하여 가져오기해당 방식을 사용하기 위해서는 yaml파일에 저장되어 있는 1step의 값들로 이루어진 class가 필요힙니다. a: b: c:d: e: f: 해당 형식으로 이루어진 yaml파일을 읽어오기 위해서는@Getter@Setterclass Node{ static A a; static D d; public Node(A a, D d){ this.a = a; this.d = d; }}해당 형식으로 된 class와 A와 D에 해당하는 class에 각각 b,c와 e,.. 2024. 5. 12.
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.
728x90
반응형