因为做了大量调试的工作,呵呵,所以对代码质量要求比较高。
1.不要想不通就写代码,不要为了存粹的解决问题而加代码,不要忽视任何一种场景可能,因为躲得了一时,躲不了一波,BUG迟早会被挖出来的,到时候更加苦逼。
2.内存是个很严肃的问题,不要直接调用系统函数,最好把malloc、kmalloc、kzalloc、vmalloc封装一层,入参module ID,size,name,统计好申请的内存,可以用proc查看,调试等,进行一个管理,这样可以对内存做一个很好的管理。
3.关于KO的大小,尽可能动态申请内存吧。虽然可能会造成程序运行效率变慢,因为申请内存耗时也不少。不过像很大的全局数据,可以加载KO的时候申请,这样既不会降低性能,也能裁剪KO。无用的函数、变量也不要保留。积少成多。
4.内存的使用,嵌入式内存都比较少,尤其是成熟的成品,比性价比的时候,省内存就很重要了,不要很随意的申请内存,很多场景不需要,就不要申请哦,做好解耦。
5.很多奇淫技巧,数组的大小申请4/8的倍数,结构体小元素放前面,移位代替乘除法,switch比较多用查表,降低圈复杂度,防止栈溢出,注意32位芯片和64位芯片代码的移植(地址和long)。