티스토리 뷰
Java Method를 Call할 때 Thread의 Java Stack에 새로운 Stack Frame을 생성하여 Push하는 것처럼 Native Method를 Call하게 되면 Java Stack에서 Native Method Stack영역으로 나와서 직접 Native Method를 수행
이는 Java Stack에서 Dynamic Link를 통해 Native 까지 확장하는 것으로 볼 수 있음. 만약 JNI를 사용하고 있고 이것이 C로 구현이 되어 있다면 Native Stack은 C Stack으로 생성되고 마치 Native Code처럼 Stack Operation을 수행하게됨
Native Method의 수행이 끝나면 Natve Method Stack에서 나와 다시 Java Stack에 새로운 Stack Frame을 생성하여 들어가게 됨
Native Method Stack은 Fixed Size일 필요는 없고 Application에 따라 확장과 축소가 가능하다.

그러나 1.3 버전 이후에 JVM 벤더들은 Java Stack과 Native Method Stack을 굳이 구분하지 않는다. 좀더 정확하게 표현하면 모두 Native Stack으로 통합이 되어 있다. 이것은 java의 Thread가 모두 Native Thread인 것과 관계가 깊다. Java 초기의 Java Thread(Green Thread)는 성능상의 문제로 폐기되고 1.3버전 부터는 Native Thread로 넘어오게 된 것이다.
이는 Java Stack에서 Dynamic Link를 통해 Native 까지 확장하는 것으로 볼 수 있음. 만약 JNI를 사용하고 있고 이것이 C로 구현이 되어 있다면 Native Stack은 C Stack으로 생성되고 마치 Native Code처럼 Stack Operation을 수행하게됨
Native Method의 수행이 끝나면 Natve Method Stack에서 나와 다시 Java Stack에 새로운 Stack Frame을 생성하여 들어가게 됨
Native Method Stack은 Fixed Size일 필요는 없고 Application에 따라 확장과 축소가 가능하다.
그러나 1.3 버전 이후에 JVM 벤더들은 Java Stack과 Native Method Stack을 굳이 구분하지 않는다. 좀더 정확하게 표현하면 모두 Native Stack으로 통합이 되어 있다. 이것은 java의 Thread가 모두 Native Thread인 것과 관계가 깊다. Java 초기의 Java Thread(Green Thread)는 성능상의 문제로 폐기되고 1.3버전 부터는 Native Thread로 넘어오게 된 것이다.
'기술이야기' 카테고리의 다른 글
Runtime Data Areas - Heap과 Object Layout (0) | 2009.10.28 |
---|---|
Runtime Data Areas - Native Method Stacks (1) | 2009.10.28 |
Runtime Data Areas - Method Table (2) | 2009.10.28 |
Runtime Data Areas - Method Area (0) | 2009.10.28 |
공지사항
최근에 달린 댓글
- Total
- 404,383
- Today
- 2
- Yesterday
- 9
링크
TAG
- 안드로이드
- 스마트폰
- bigdata
- 페이스북
- iPhone
- 구글
- runtime data areas
- 빅데이터
- 애플
- Apple
- Web2.0
- 아이폰
- 아이패드
- 전자책
- 스티브잡스
- iPad
- 소셜네트워크서비스
- garbage collection
- Splunk
- hotspot
- jvm
- 소셜네트워크
- SNS
- ebook
- 트위터
- 앱스토어
- jvm internal