我正在考虑将长函数解析为几个小函数,我关注性能.假设我们有很多代码行的长函数:
void f(){
....
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我们将工作提取到单独的功能:
void f(){
f1();
f2();
f3();
}
Run Code Online (Sandbox Code Playgroud)
它通常会影响性能吗?我正在寻找一种平衡性能和良好软件设计的一般 策略.拥有小功能总是一个好习惯吗?假设一个具有私有成员变量的类int something.是否可以通过致电get_something()而不是something公开来归还它?
假设函数为非虚拟和优化级别/O3.问题的重要性在于,如果第一个版本更快,我们将面临可维护性和性能之间的权衡.
如果你的函数很简单,编译器通常会为你内联它们,因此不会有任何开销.
即使编译器没有内联你的函数,如果函数调用的开销很重要,它们也必须是一个非常热门的路径的一部分.
努力首先编写可读代码,然后担心性能问题.并且只有在对应用程序进行概要分析(启用了优化)后才能优化性能,并证明所讨论的代码是实际的性能瓶颈.