4
這個問題說明了一切。我正在看看Can a recursive function be inline?,所以試圖將它與Java關聯起來。可以使用Java(JIT)內聯遞歸方法嗎?
這個問題說明了一切。我正在看看Can a recursive function be inline?,所以試圖將它與Java關聯起來。可以使用Java(JIT)內聯遞歸方法嗎?
整理。尾遞歸方法可以很容易地轉換爲循環。否則,JITC可能會將幾個電話內聯爲一種「展開」。
雖然取決於月相和星期幾,但許多不同的因素會影響JITC的決定。
但是,如果它們轉換爲循環,不會丟失每個堆棧幀的局部變量值嗎?或者JITC也照顧這一點嗎? – shrini1000 2012-03-16 12:35:13
如果它不能保證有相同的結果(包括副作用),那麼JITter不能這樣做。但是沒有任何說明可以在優化時引入額外的臨時變量。 – 2012-03-16 12:38:17
事實上,Java JIT Compilers **不能將尾調用轉換爲循環。 – 2012-03-16 12:38:57