扫码关注官方订阅号
光阴似箭催人老,日月如移越少年。
方法的调用是有成本的,但是其对性能的影响可以忽略。值得一提的是,Java编译器几乎不会对这些调用进行优化,但是JVM在运行时会去分析,然后选择性将一些方法调用进行内联,以达到节省开销的目的。程序员在非极端要求性能的情形下不必关心这些细节。
会,因为context切换了,不过这种一般忽略,得保证代码可读性
你说的,这些是不定的,因为对于程序的优化问题本质上是一个不可判定的问题。举个例子,如果从调用的角度而言,好像是增加了开销,但如果另一个方面,我们可以把程序分解成很多的线程进行执行,可能速度又会加快,而且,变成小代码了,cache的优化可能会使其加快,(这个要取决于你的循环结构体),有很多因素会影响你的代码运行,但当前,是以程序员的开发为核心进行优化,也就是怎么让程序员更有工作效率,怎么来。分解成小代码,显然是有利于程序员开发,从这个角度说,你其实已经优化了代码了。
会,但是可读性更重要!
所以C++里有内联函数。因为函数调用会复制参数,使用堆栈和代码跳转。。。。
不过在 Haskell 里面函数调用几乎是 0 成本的,所以函数粒度可以写的特别小。
可能会变得慢,但是不是关键。关键是你的思路和代码实现过程是不是最优。
会变慢,但是基本没有什么影响,相对于代码的整洁性、可读性,可以忽略不计了。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
方法的调用是有成本的,但是其对性能的影响可以忽略。
值得一提的是,Java编译器几乎不会对这些调用进行优化,但是JVM在运行时会去分析,然后选择性将一些方法调用进行内联,以达到节省开销的目的。程序员在非极端要求性能的情形下不必关心这些细节。
会,因为context切换了,不过这种一般忽略,得保证代码可读性
你说的,这些是不定的,因为对于程序的优化问题本质上是一个不可判定的问题。
举个例子,如果从调用的角度而言,好像是增加了开销,但如果另一个方面,我们可以把程序分解成很多的线程进行执行,可能速度又会加快,而且,变成小代码了,cache的优化可能会使其加快,(这个要取决于你的循环结构体),有很多因素会影响你的代码运行,但当前,是以程序员的开发为核心进行优化,也就是怎么让程序员更有工作效率,怎么来。分解成小代码,显然是有利于程序员开发,从这个角度说,你其实已经优化了代码了。
会,但是可读性更重要!
所以C++里有内联函数。因为函数调用会复制参数,使用堆栈和代码跳转。。。。
不过在 Haskell 里面函数调用几乎是 0 成本的,所以函数粒度可以写的特别小。
可能会变得慢,但是不是关键。关键是你的思路和代码实现过程是不是最优。
会变慢,但是基本没有什么影响,相对于代码的整洁性、可读性,可以忽略不计了。