我在閱讀有關確定性執行的內容,即對於相同的輸入,您具有相同的輸出。我想知道是否有編譯器作者在運行時考慮過優化確定性函數。例如,採取階乘函數。如果在運行時檢測到它持續被相同的輸入值調用,編譯器可以緩存輸出值,而不是執行階乘函數,可以直接使用該輸出值。看起來像一個很好的研究課題。有沒有關於這個話題的文章或工作?確定性函數的編譯器優化
3
A
回答
4
這通常被稱爲memoization一般會談的問題,並在函數式語言一個相當普遍的優化。
1
它可以做到,但據我所知,編譯器並不常見。問題在於用戶可以按自己喜歡的方式定義多種類型,並以任何他們喜歡的方式定義相同的類型,並且使用堆分配和東西非常非常非常難以證明這樣的事情。基本上,它可以做到,但只有當你的函數涉及直線數值計算時,這很少見,因此它通常不具有高價值。
1
你在談論引用透明度。這是函數式編程的重要組成部分。有關配置文件導引優化
http://en.wikipedia.org/wiki/Referential_transparency_(computer_science)
1
http://blogs.msdn.com/b/vcblog/archive/2008/11/12/pogo.aspx會談。
亙古不變的回答本身,而是在有關使用運行時行爲來優化裝配
相關問題
- 1. 函數參數的編譯器優化
- 2. 虛擬函數編譯器優化C++
- 3. 編譯器優化
- 4. 編譯器優化
- 5. 針對數值穩定性的編譯器優化
- 6. 克++編譯器的優化
- 7. 函數模板上的C++編譯器優化返回參數
- 8. Java編譯器優化
- 9. 編譯器優化問題
- 10. 編譯器謂語優化
- 11. Requirejs優化器不編譯
- 12. 二郎編譯器優化
- 13. 編譯器優化實現
- 14. C++編譯器優化
- 15. MS編譯器優化,替代函數中的變量?
- 16. 編譯器優化與參數
- 17. Kotlin編譯器能否優化掉包裝函數?
- 18. 編譯器是否可以識別和優化常用函數?
- 19. 僅針對單個函數/文件啓用編譯器優化
- 20. 編譯器如何優化這個階乘函數?
- 21. 如何用編譯器優化這個函數?
- 22. 函數模板重載及編譯器優化
- 23. 調試期間的編譯器優化
- 24. 由編譯器優化的變量
- 25. 的std ::移動與編譯器優化
- 26. 如何確保編譯器不會優化我的性能測試?
- 27. R優化線性函數
- 28. 是由編譯器優化的類上的硬編碼數組?
- 29. CLR語言優化。語言編譯器VS JIT編譯器
- 30. 隱式else編譯器優化
您似乎誤將此網站誤認爲Google。 – 2011-05-26 21:57:02