4
질문에 모든 것이 나와 있습니다. 나는 Can a recursive function be inline?을보고 있었기 때문에 이것을 자바와 연관 짓기 위해 노력했다.Java (JIT) 인라인 재귀 메소드를 사용할 수 있습니까?
질문에 모든 것이 나와 있습니다. 나는 Can a recursive function be inline?을보고 있었기 때문에 이것을 자바와 연관 짓기 위해 노력했다.Java (JIT) 인라인 재귀 메소드를 사용할 수 있습니까?
일종의. Tail-recursive 메서드는 매우 쉽게 루프로 변환 될 수 있습니다. 그렇지 않으면, JITC는 "언 롤링 (unrolling)"의 일종으로 몇몇 호출을 인라인 할 수 있습니다.
달의 위상과 요일에 따라 다르지만, 많은 요인이 JITC의 결정에 영향을 미칩니다.
그러나 루프로 변환되면 스택 프레임 당 로컬 변수의 값이 손실되지 않습니까? 또는 JITC가이를 처리합니까? – shrini1000
동일한 결과 (부작용 포함)가 있음을 보장 할 수 없다면 JITter는이를 수행 할 수 없습니다. 그러나 추가 임시 변수를 최적화 할 수 없다는 것은 없습니다. –
사실, Java JIT 컴파일러 **는 꼬리 호출을 루프로 변환 할 수 없습니다 **. –