代码量统计方案

有两种,一种是在线工具,一种是拉取到本地统计。

公开的中小型开源从仓库可以用在线工具,离线的私有或大型需要本地。

在线统计

有一些工具提供针对 github 等开源公共仓库直接的代码统计:

本地统计

推荐以下两种:

tokei 似乎更快一点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
➜  develop tokei PracticeDev/                                                                                                                                                                                      (base) 
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
C 24 5810 4020 1079 711
C Header 27 11399 8802 910 1687
C Shell 1 27 12 5 10
C++ 61 6960 5622 533 805
C++ Header 2 403 282 48 73
Dockerfile 1 15 11 0 4
Fish 1 69 42 14 13
Go 7 578 431 42 105
INI 1 6 3 2 1
JavaScript 6 660 574 56 30
JSON 2 15318 15318 0 0
Makefile 2 57 36 4 17
Markdown 2 94 0 76 18
Perl 5 74 51 10 13
PowerShell 1 247 108 106 33
Python 1051 413682 338202 26114 49366
SVG 1 1 1 0 0
SWIG 1 33194 23001 0 10193
Plain Text 20 997 0 952 45
===============================================================================
Total 1216 489591 396516 29951 63124
===============================================================================
➜ develop cloc PracticeDev/ (base)
1320 text files.
1093 unique files.
1354 files ignored.

github.com/AlDanial/cloc v 2.00 T=1.68 s (651.2 files/s, 267155.8 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
Python 929 53378 70447 250328
SWIG 1 10193 0 23001
JSON 2 0 0 15318
C/C++ Header 22 1648 912 8186
C++ 57 690 460 4983
C 24 755 1035 4020
Text 20 45 0 952
JavaScript 6 38 51 571
Go 7 105 42 431
XML 9 0 0 226
PowerShell 1 49 90 108
Markdown 2 18 7 69
Perl 5 13 7 54
Fish Shell 1 13 14 42
make 2 17 4 36
C Shell 1 10 5 12
Dockerfile 1 4 0 11
Ruby 1 2 4 6
INI 1 1 2 3
SVG 1 0 0 1
-------------------------------------------------------------------------------
SUM: 1093 66979 73080 308358
-------------------------------------------------------------------------------

还有更多选择:

工具 实现语言 支持统计语言 相对性能 特殊特性
cloc Perl 支持超过100种编程语言 中等 可以忽略空行、注释行,可以对比两个版本的代码差异
SLOCCount C++ C, C++, Java, Perl, Shell等 较高 可以估算项目成本,支持多种输出格式如CSV、XML等
Ohcount C 支持超过70种编程语言 中等 支持多种语言混编的统计,提供了许可证检测功能
Tokei Rust 支持超过150种编程语言 较高 可以并行处理文件,性能优秀
gocloc Go 支持超过100种编程语言 较高 性能优秀,可以处理大型项目

以上信息仅供参考,具体性能和特性可能会因为工具版本的更新而有所变化。

References


代码量统计方案
https://www.frytea.com/post/20240623100800.html
作者
Tianlun Song
发布于
2024年6月23日
更新于
2024年6月23日
许可协议