티스토리 뷰

JAVA

[JIT Optimizer] 카운터란?

박중수 2015. 4. 23. 19:03

이전에 카운터는 invocation, backedge 두 개의 카운터가 있다고 하였다.


이 카운터가 증가하는 규칙을 보면 invocation counter는 메소드를 시작할 때마다 증가한다.


또한 backedge counter는 높은 바이트코드 인덱스에서 낮은 인덱스로 컨트롤 흐름이 변경될 때마다 증가하며

메소드에 루프가 존재하는지 확인할 때 사용된다.


backedge counter는 invocation 카운터보다 우선순위가 높다.


이 카운터들은 인터프리터에 의해 증가되고, 그 값이 한계치에 도달하면 인터프리터는 컴파일을 요청한다.

invocation의 한계치는 CompileThreshold 옵션으로 지정할 수 있다.

그리고 backedge의 한계치는 ComplieThreshold * OnStackReplacePercentage / 100 으로 계산한다.


ComplieThresholdOnStackReplacePercentage 는 JVM을 시작할 때 지정가능하다.



'JAVA' 카테고리의 다른 글

[JIT Optimizer] OnStackReplacement (OSR)  (0) 2015.04.23
[JIT Optimizer] 컴파일  (0) 2015.04.23
[JIT Optimizer] 개념  (0) 2015.04.23
[JVM] HotSpot VM의 개념  (0) 2015.04.23
[JAVA 성능개선] 예외처리를 효율적으로  (0) 2015.04.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함