Offcanvas

개발자 / 애플리케이션

오픈JDK, 새 제안 공개··· “자바에 비동기 스택 추적 지원”

2022.11.07 Paul Krill  |  InfoWorld
이 제안은 스택 추적을 비동기적으로 수집하고, 자바 및 네이티브 스택 프레임 정보를 모두 포함하는 API를 정의한다. 
 
ⓒChristoph (CC0)

자바에서의 비동기 스택 추적을 위한 제안이 오픈JDK의 자바 개선 프로세스를 통해 진행되고 있다. ‘비동기식 스택 추적 VM API(Asynchronous Stack Trace VM API)’ 계획은 비동기식으로 스택 추적을 수집하고, 자바 및 네이티브 스택 프레임의 데이터를 모두 포함하는 AsyncGetStackTrace API를 정의한다. 아울러 여기에는 자바 네이티브 스택 프레임 정보를 얻을 수 있는 프로파일러용 API 제공과 비동기 사용 지원(예: 신호 처리기 호출 등)이 포함된다. 

제안서에 따르면 기존 AsyncGetCallTrace API에 비해 (이는) API를 사용하지 않을 때 성능에 영향을 미치지 않으며, 메모리 요구 사항이 크게 증가하지 않는다. 새 API는 JVM을 손상시킬 수 있기 때문에 프로덕션 용도로는 권장되지 않는다. 광범위한 테스트와 퍼징을 통해 그 가능성을 최소화할 계획이라고 제안서는 전했다. 

현재 AsyncGetCallTrace는 비동기 프로파일러를 포함해 오픈소스 및 상업용으로 쓸 수 있는 대부분의 프로파일러에서 사용된다. 하지만 2가지 큰 단점이 있다. 어떤 헤더로도 내보내지 않은 내부 API이며, 그리고 자바 프레임 정보, 즉 해당 메소드 및 바이트코드 인덱스만 반환한다는 점이다. 이러한 문제로 인해 프로파일러 및 관련 도구를 구현하기가 어렵다. 

복잡한 코드를 통해 핫스팟 VM(HotSpot VM)에서 추가 정보를 추출할 순 있지만 컴파일된 자바 프레임의 인라인 여부, 자바 프레임의 컴파일 수준 및 최상위 스택에 없는 C/C++ 프레임 정보 등의 기타 유용한 정보는 숨겨져 있다. 이 데이터는 특정 애플리케이션용 VM을 프로파일링 및 조정하고 아울러 JNI(Java Native Interface)를 많이 사용하는 코드를 프로파일링하는 데 유용하다. 

AsyncGetStackTrace API는 AsyncGetCallTrace API에서 모델링된다. 현재 새 API는 특정 버전의 표준 자바를 대상으로 하지 않는다. 한편 자바의 다음 버전은 2023년 3월 출시될 예정인 JDK(Java Development Kit) 20이다. ciokr@idg.co.kr
 
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.