前几天大概阅读了sched.c的代码,感觉读代码得花一整块的时间来读,好让脑子里能把各个函数的内容记下,8K多行的代码,阅读的好辛苦。在对sched.c的代码进行阅读的时候,稍微修改了下部分的代码,让其成为我认为性能更加优化的代码。
现在开始阅读fork.c的代码,大概先把整个文件的结构梳理了下,接着开始从头看代码,由于之前梳理了这个文件的代码结构,在阅读代码的时候感觉方便了很多。在阅读的过程中,我仍然是喜欢对代码进行修改,部分冗余的代码直接被我给修改了,比如729行的for (i = open_files; i != 0; i--),在判断循环结束的时候用了个!=,意思是当i不为0的时候就继续循环,判断的结果应该是使用的一个bool,假如给改成了for (i = open_files; i ; i--),减少了比较的条件,在循环结束时直接俄判断i时候为0就可以了。在bool值中,0是代表的false,而其他的非0数为true。所以这里可以使用i来代替i != 0
可以用以下的代码验证修改的正确性,也可以采用-s -O2的编译选项来查看性能的优化:
/*
* filename:a.c
* writer:liuweni
* purpose:test
*/
#include <stdio.h>
int main(){
int i=-1;
for(i = 5 ; i ; i --)
printf("%d\n",i);
return 0;
}
|
/*
* filename:a.c
* writer:liuweni
* purpose:test
*/
#include <stdio.h>
int main(){
int i=-1;
for(i = 5 ; i != 0 ; i --)
printf("%d\n",i);
return 0;
}
|
阅读(1684) | 评论(0) | 转发(0) |