我喜欢用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)的性能影响?
如果您正在使用代码的人不知道是否存在可衡量的严重性能影响,我们应该如何知道? –