Java
-
option 설명 etc -Xms 초기 Heap 메모리 size Heap -Xm 최대 사용 가능한 Heap 메모리 size Heap -XX:MetaspaceSize 초기/최소 metaspace size metaspace -XX:MaxMetaspaceSize 최대 metaspace size metaspace defaul = -1 ( unlimited ) -java.net.preferipv4stack=true IPv4, IPv6 중에 IPv4를 더 우선으로 사용 defaul = false
[Java] JVM 옵션 정리option 설명 etc -Xms 초기 Heap 메모리 size Heap -Xm 최대 사용 가능한 Heap 메모리 size Heap -XX:MetaspaceSize 초기/최소 metaspace size metaspace -XX:MaxMetaspaceSize 최대 metaspace size metaspace defaul = -1 ( unlimited ) -java.net.preferipv4stack=true IPv4, IPv6 중에 IPv4를 더 우선으로 사용 defaul = false
2024.04.21 -
코드 내부에서 java의 다형성 특징을 이용해서 abstract, interface를 이용해 기능을 작성하는 경우가 있다. 이러한 경우에 하나의 application 내에서만 호출되는 관계가 아니고, 다른 application에 메시지로 전달되거나 redis와 같은 storage에 저장되는 경우 object를 string이나 byte로 변환하는 과정이 필요하게 된다. 해당 과정에서 abstract, interface를 사용하게 되면 실제로 deserialize 되는 시점에 해당 정보가 어떠한 concrete class에 매핑되는지에 대한 정보가 필요하게 된다. 이러한 구체적인 정보가 없이는 serialize 된 정보가 다시 객체로 변환되기는 불가능하다. @JsonTypeInfo를 사용하면 이러한 문제를 ..
[Java] 다형성 serialize (jackson, JsonTypeInfo)코드 내부에서 java의 다형성 특징을 이용해서 abstract, interface를 이용해 기능을 작성하는 경우가 있다. 이러한 경우에 하나의 application 내에서만 호출되는 관계가 아니고, 다른 application에 메시지로 전달되거나 redis와 같은 storage에 저장되는 경우 object를 string이나 byte로 변환하는 과정이 필요하게 된다. 해당 과정에서 abstract, interface를 사용하게 되면 실제로 deserialize 되는 시점에 해당 정보가 어떠한 concrete class에 매핑되는지에 대한 정보가 필요하게 된다. 이러한 구체적인 정보가 없이는 serialize 된 정보가 다시 객체로 변환되기는 불가능하다. @JsonTypeInfo를 사용하면 이러한 문제를 ..
2024.04.13 -
기존에 잘 동작하던 서비스의 java version을 upgrade시키고 난 이후에 에러가 발생하게 되었다. java 8 -> java 11 에러 내역 버전 업 이후에 thread 개수가 너무 많이 증가하여 out of memory 발생 Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Unknown Source) at java.base/java.util.concurren..
[Java] ForkJoinPool 에러 발생 in Java11기존에 잘 동작하던 서비스의 java version을 upgrade시키고 난 이후에 에러가 발생하게 되었다. java 8 -> java 11 에러 내역 버전 업 이후에 thread 개수가 너무 많이 증가하여 out of memory 발생 Caused by: java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached at java.base/java.lang.Thread.start0(Native Method) at java.base/java.lang.Thread.start(Unknown Source) at java.base/java.util.concurren..
2024.03.11 -
ForkJoinPool java 7부터 사용가능한 Java Concurrency Framework 분할 정복(Divide and Conquer) 알고리즘과 유사한 구조 동일한 작업을 여러 개의 Sub Task로 분리(Fork)하여 각각 처리하고, 이를 최종적으로 합쳐서(Join) 결과를 만들어내는 방식 -> 대규모 작업을 빠르게 처리하는 데 도움 스레드풀의 큐(inbound queue)에 작업이 할당되면 pool 내의 스레드들이 해당 작업을 가져가서 수행한다. 각 스레드들은 다시 본인의 작업 큐(work queue)를 가진다. 각 스레드들의 작업 큐는 deque 자료구조를 가진다 (작업 스레드는 한쪽에서 꺼내 쓰고, 다른 스레드가 작업을 stealing 할 때 다른 한쪽을 사용) 작업 스틸링(Work ..
[Java] ForkJoinPool이란 (ParellelStream)ForkJoinPool java 7부터 사용가능한 Java Concurrency Framework 분할 정복(Divide and Conquer) 알고리즘과 유사한 구조 동일한 작업을 여러 개의 Sub Task로 분리(Fork)하여 각각 처리하고, 이를 최종적으로 합쳐서(Join) 결과를 만들어내는 방식 -> 대규모 작업을 빠르게 처리하는 데 도움 스레드풀의 큐(inbound queue)에 작업이 할당되면 pool 내의 스레드들이 해당 작업을 가져가서 수행한다. 각 스레드들은 다시 본인의 작업 큐(work queue)를 가진다. 각 스레드들의 작업 큐는 deque 자료구조를 가진다 (작업 스레드는 한쪽에서 꺼내 쓰고, 다른 스레드가 작업을 stealing 할 때 다른 한쪽을 사용) 작업 스틸링(Work ..
2023.12.21