由于函数分支越多,执行得越慢,使用下面的注释块进行一次代码执行(例如变量启动)会更好,或者为此目的使用函数是否更好? 哪一种更好的做法?一种选择真的与其他选择不同吗?如果不是这样,为什么不呢?
评论栏:
/*************************************************************************************************/
/*********************************** VARIABLE INITIATIONS *************************************/
/************************************************************************************************/
Hospital **hospitals = new Hospital*[15];
for(int i = 0 ; i < 5 ; i++)
hospitals[i] = new Hospital(3, i, 15); //3: quota, i: hospital number, 10:prefereneceLength
Resident **residents = new Resident*[15];
for(int i = 0 ; i < 15 ; i++)
residents[i] = new Resident(i,5); //i: hospital number, 10:prefereneceLength
.
.
.
或启动函数:
int main(void) {
init_vars();
read_from_files();
.
.
.
答案 0 :(得分:2)
我总是倾向于过早优化的可读性。
如果您稍后发现由于函数调用而导致您的初始化速度变慢(我无法相信除了最苛刻的任何情况之外的任何情况都会影响您),那么优化。
与往常一样,衡量您的表现并确定热点。很容易提前确定可能的问题并为此编写代码,后来发现这根本不是问题。与此同时,你牺牲了设计和可读性。
正如Knuth所说:
我们应该忘记效率低,大约97%的时间说: 过早优化是万恶之源。