Skip to content

Latest commit

 

History

History
2354 lines (2301 loc) · 275 KB

java.md

File metadata and controls

2354 lines (2301 loc) · 275 KB

Java

API

Asynchronous

Book

Concurrency Parallel Thread

Concurrency Parallel Thread Akka

Concurrency Parallel Thread Executor

Conference

Eclipse

Functional Java

IntelliJ

IntelliJ Plugin

Java8

Java8 Library

Java8 Stream

Java9

Java10

Java11

Java12

Java13

Java14

Java15

Java16

Java17

Java18

Java19

Java20

  • Sailing Modern Java by Piotr Przybyl - YouTube
  • JDK 20 G1/Parallel/Serial GC changes
    • JDK 20에서 Garbage Collector 관련해서 정리한 글
    • Parallel GC는 Full GC 중 객체 처리의 병렬화로 GC로 인한 중단 시간이 20% 감소했고 Serial GC는 눈에 띄는 변경 사항은 없음
    • G1 GC에는 다음의 변경 사항 포함
      • G1 네이티브 메모리 풋프린트를 Java 힙의 1.5까지 줄일 수 있게 됨
      • G1 정제 스레드 관리가 개선되어 애플리케이션이 CPU 사이클을 덜 사용
      • G1은 GC 일시 정지 중 오버헤드를 줄이기 위한 로컬 할당 버퍼(PLAB)를 사용하는데 이 공간이 낭비되거나 부족한 현상을 줄이기 위해 PLAB의 크기를 조정하는 기능 추가
      • Young generation의 크기 결정에 대한 예측 개선으로 GC 횟수 감소
      • 예방적 GC를 기본적으로 비활성화

Java21

  • JEP 444: Virtual Threads Arrive in JDK 21, Ushering a New Era of Concurrency
    • 프로젝트 룸의 버추얼 스레드를 사용해서 코루틴 디스패처를 구현한 예제
    • 100만개 코루틴을 만들고 개당 1초씩 스레드 슬립을 줬을때 수행시간
      • Dispatchers.IO(스레드 64개) : 4시간 20분
      • Dispatchers.IO(스레드 5000개) : 3분 20초
      • Dispatchers.LOOM(버츄얼 스레드 100만개) : 1초
    • jdk19 이전 버전에선 최대치가 2번까지인데 스레드를 5000개나 만들면 하드웨어 자원을 엄청나게 먹기 때문에 사실상 불가능한 방식
    • 메모리를 거의 안먹는 공짜 수준의 버츄얼 스레드 + 코루틴이 병렬처리에 매우 강함

JDK

JDK OpenJDK

JDK Oracle

JSP

JVM

JVM GC Garbage Collection

JVM Flag, Option

JVM Profile

Library

Library Debug

Library GraphQL

Library logger logging

Library Spring

Library Spring Boot

Memory Leak, OOM, Out of memory

NetBeans

News

Performance Tuning

Reactive

Serialization

TDD Test

Tutorial

Web