0

由于函数分支越多,执行速度越慢,是使用下面的注释块进行一次代码执行(例如变量启动)更好,还是为此目的使用函数更好?哪一个是更好的实践?一种选择真的与另一种不同吗?如果不是这样,为什么不呢?

评论块:

/*************************************************************************************************/
/***********************************  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();
    .
    .
    .
4

1 回答 1

2

我总是喜欢可读性而不是过早的优化。

如果您后来发现由于函数调用而导致初始化速度变慢(而且我无法相信除了最苛刻的情况之外的任何情况都会影响您),然后进行优化。

与往常一样,衡量您的表现并确定热点。提前识别可能的问题并为此编写代码很容易,后来发现根本不是问题。与此同时,您牺牲了设计和可读性。

正如高德纳所说:

我们应该忘记小的效率,比如大约 97% 的时间:过早优化是万恶之源。

于 2013-03-19T09:52:28.063 回答