当前位置: 首页 > news >正文

[Linux]在源代码数量优化中统计源文件数量,目标文件数量的一点作用

这个shell脚本的功能是统计当前目录下子目录里*.c,*.h的数量,统计编 译生成*.o的数量,以及当前目录名:

 root@jason:/j# cat temp.sh

clear;
rm temp.txt

paths=`ls`
for path in $paths
do
    if [ -d "$path" ]; then
        cd $path
            ch=`find -name "*\.[ch]"  | wc -l`
            o=`find -name "*\.o"  | wc -l`
        cd ..
        echo "$ch $o $path" >>temp.txt
    fi
done

cat temp.txt | sort -n
rm temp.txt
 

clear;
rm temp.txtpaths=`ls`
for path in $paths
doif [ -d "$path" ]; thencd $pathch=`find -name "*\.[ch]"  | wc -l`o=`find -name "*\.o"  | wc -l`cd ..echo "$ch $o $path" >>temp.txtfi
donecat temp.txt | sort -n
rm temp.txt

比如,在当前根目录执行的效果:

 

 比如第一列是h,c文件的数量,第二列是.o的数量,第三列是文件夹名,为啥要把第一列这样放呢,主要是为了排序,使用sort命令,这样方便查看结果。

看到前两列,心里会大概对于当前目录是否有优化的空间心里有点数。

比如,这里一看,drivers感觉有相当大的操作空间,sound目录也是,fs 也不错等等,同样子目录也是一样的。

相反的如果操作virt目录,block目录,io_uring目录,感觉就是浪费生命。

这样就可以通过每个目录的Kconfig,Makefile文件中对应的目录参数进行是否编译修改,验证自己的想法对不对,注意,有些目录虽然里边不编译目标文件,但是在内核层编译或者链接,或者其他操作是会依赖到的,这里要小心,而且有的依赖比较隐晦。

在实际的操作中,会发现很多,比如自己的电脑根本就没用到AMD的任何驱动,但是你把AMD代码目录删除,就会报错这类问题,在目录的Kconfig也会对一些模块进行依赖,还有些是源代码的头文件依赖,也有些是函数中代码对其他产品的源代码有依赖,这些有很多看起来不太规范。

如果自己的代码基本功比较好的话,可以从源代码级修改,但是由于代码 量比较大,这样操作有点难度。

还有一些问题,比如在编译时不会暴露出来,但是在链接,或者生成符号 表的时候会暴露出来问题等等.

感谢阅读,个人一点观点,不一定对。

相关文章:

  • 科技成果鉴定测试有哪些内容?又有什么作用?
  • 【文档智能】开源的阅读顺序(Layoutreader)模型使用指南
  • Spark缓存
  • Opencv进阶操作:图像拼接
  • 如何通过服务主体获取 Azure 凭据
  • BGP基础
  • vscode如何使用 GitHub Copilot
  • Qt 编译 sqldrivers之psql
  • 安全监控之Linux核心资产SSH连接监测邮件
  • K8s中的containerPort与port、targetPort、nodePort的关系:
  • 排序算法-选择排序
  • 如何使用 QuickAPI 推动医院数据共享 —— 基于数据仓库场景的实践
  • 基于Centos7的DHCP服务器搭建
  • Nacos源码—6.Nacos升级gRPC分析二
  • 昆仑万维财报解读:AI商业化卷王
  • 7系列 之 OSERDESE2
  • 【NLP 71、常见大模型的模型结构对比】
  • docker安装flowable ui
  • Python Cookbook-7.7 通过 shelve 修改对象
  • WebUI性能优化大师课:从毫秒到微秒的极致之旅
  • 经彩申城!上海网络大V沙龙活动走进闵行
  • “20后”比“60后”更容易遭遇极端气候事件
  • 泉州一家婚介机构广告牌越南新娘七天闪婚领证?市监部门介入
  • 中科院院士魏辅文已卸任江西农业大学校长
  • 外交部:印巴都表示不希望局势升级,望双方都能保持冷静克制
  • 吴清:基金业绩差的必须少收管理费,督促基金公司从“重规模”向“重回报”转变