我喜歡用Java編寫真正可讀的代碼。爲此,我使用了構建器模式並且有很多靜態方法。但是在某些時候,我會調用或鏈接很多方法,所以我想出了這個問題:它是否有任何性能問題調用了很多方法?方法調用如何影響Java中的性能?
回答
該方法的作用遠遠大於方法調用本身。這是一個過早的優化,你會被建議避免。
您不知道JVM本身內置的運行時優化會如何影響性能。他們會比你的嘗試更聰明。
編寫您的應用程序,剖析它,看看是否有任何明顯的改進。重複,直到表現可以接受。
一般來說:不是真的。
然而,一個能夠提供大量不必要開銷的情況是在執行大的遞歸調用時。如果是這種情況,性能是一個問題,你應該研究一種動態編程方法或者實現你自己的堆棧。
否則,您的方法在其邏輯中應該相當複雜,以超過其獲得的任何性能。
您是否有任何證據支持您有關大型遞歸調用的說法? [以下內容暗示](http://www.ahmadsoft.org/articles/recursion/index.html) – nerdytenor
@nerdytenor:是的,我從個人經歷做起(我不會讓你知道細節,而是鼓勵你參考基準如果你有任何疑問,你自己吧)。請閱讀您鏈接的帖子的底部,其中解釋了性能差異。這裏是一個更準確的比較(在同一個網站上):http://www.ahmadsoft.org/articles/recursion/ubuntu.html – tskuzzy
+1爲鏈接 – nerdytenor
可讀性幾乎總是要走的路。對函數調用的性能有影響,但不可讀的代碼可能會受到其他實現問題的影響,這些問題的性能會受到更高的影響。
在適當的地方使用關鍵詞final,以便建議爲這些函數內聯。
您不想使用大量函數調用的情況是嚴密的循環。發生數十萬次的事情。如果需要優化軟件,通常可以優化這些地方。
同意在這裏,並重申:除非你使數百幾秒鐘內完成數千次呼叫,這不是您需要擔心的事情。 –
- 1. copyFromRealm方法中的maxDepth參數如何影響性能?
- 2. Java -verbose:gc性能影響?
- 3. 調用空類方法是否會影響性能?
- 4. innodb_log_file_size如何影響性能?
- 5. estimatedRowHeight如何影響性能?
- 6. 如何調用表中的值,而不會影響性能
- 7. 性能影響
- 8. 「this」如何影響方法的方法?
- 9. 性能的影響
- 10. MySQL事件調度的性能影響
- 11. python類中的方法數量是否會影響性能?
- 12. 在Ruby中生成100個動態方法的性能影響?
- 13. 只讀功能與方法,性能影響/底層的東西
- 14. 當調用立即等待的異步方法時,性能影響有多大?
- 15. LINQ性能影響
- 16. WCF實例如何影響調用方法的上下文?
- 17. Debug.WriteLine影響非調試性能
- 18. 例如,如何調用notifyAll會影響Java中的執行?
- 19. 影響循環的出列方法(Java)
- 20. 調試器如何影響iPhone上的性能?
- 21. 行設計如何影響MySQL性能?
- 22. GraphicsPath.Flatten()如何影響繪圖性能?
- 23. 文件大小如何影響性能?
- 24. 如何確定PerlLogHandler性能影響?
- 25. 在java中使用System.getenv()的性能影響
- 26. NLog中調用點佈局渲染器對性能的影響
- 27. zLib中的zError函數調用影響性能
- 28. mysql_data_seek的性能影響
- 29. MouseMove對性能的影響
- 30. nvarchar(4000)的性能影響?
如果您正在使用代碼的人不知道是否存在可衡量的嚴重性能影響,我們應該如何知道? –