JVM GC 파고들기 — 컬렉터마다 다르게 도는 이유
weak generational hypothesis 하나로는 설명 안 되는 컬렉터별 동작 차이를, 같은 메모리 압박 상황에서 Serial·Parallel·G1의 실제 GC 로그로 비교해 확인한다
weak generational hypothesis 하나로는 설명 안 되는 컬렉터별 동작 차이를, 같은 메모리 압박 상황에서 Serial·Parallel·G1의 실제 GC 로그로 비교해 확인한다
suspend 함수가 컴파일 시점에 상태 머신으로 변환되는 과정을 바이트코드로 직접 확인하고, 콜백 기반 API 위에서 스레드를 블로킹하지 않고 중단·재개되는 동작을 재현한다.
리스트 원소 포함 여부를 반복 확인할 때 Set으로 미리 바꾸는 것과 그냥 List로 쓰는 것을 벤치마크로 비교하고, 차이의 근거를 stdlib 소스에서 찾는다
use-site target이 왜 필요한지 실제 바이트코드를 javap로 확인한다
통계에 없는 값의 선택도가 0이 되고, 1로 clamp된 추정치가 Nested Loop을 부르기까지
Spring AOP의 프록시 기반 동작을 테스트로 확인했다
@Transactional 전파 속성과 rollback-only 표시를 테스트로 확인했다
표준 정의만 외우면 실무에서 틀리는 이유와, 테스트로 직접 확인한 기록