Voici comment compter les lignes de code source (SLOC). Mesurons SLOC en utilisant le code source busybox comme exemple. Le système d'exploitation PC est Ubuntu 14.04.
cloc Installez cloc. cloc est un fichier de script Perl.
console
sudo apt-get install cloc
Analysez busybox-1.26.2. Le résultat est le suivant.
console
$ cloc busybox-1.26.2
2056 text files.
1657 unique files.
1145 files ignored.
http://cloc.sourceforge.net v 1.60 T=17.35 s (50.8 files/s, 15274.9 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
C 631 24595 53365 158590
Bourne Shell 163 1317 1278 7419
C/C++ Header 60 1155 2176 5370
HTML 9 420 32 3934
C++ 1 166 62 1197
make 5 306 441 900
yacc 1 93 20 570
Perl 3 97 166 315
lex 1 40 12 303
NAnt scripts 1 84 0 260
Bourne Again Shell 4 47 86 203
IDL 1 0 0 33
awk 1 2 8 30
--------------------------------------------------------------------------------
SUM: 881 28322 57646 179124
--------------------------------------------------------------------------------
Il sera agrégé par langue. Le nombre de lignes est compté par le nombre de fichiers, de blancs, de commentaires et de code.
Le résultat de l'option "--by-file".
console
$ cloc --by-file busybox-1.26.2
2056 text files.
1657 unique files.
1145 files ignored.
http://cloc.sourceforge.net v 1.60 T=16.65 s (52.9 files/s, 15924.0 lines/s)
----------------------------------------------------------------------------------------------------------------------
File blank comment code
----------------------------------------------------------------------------------------------------------------------
busybox-1.26.2/shell/ash.c 1153 1969 10476
(...)
busybox-1.26.2/arch/i386/Makefile 1 5 1
----------------------------------------------------------------------------------------------------------------------
SUM: 28322 57646 179124
----------------------------------------------------------------------------------------------------------------------
C'est le résultat de l'exécution de l'option "--diff".
console
$ cloc --diff busybox-1.26.2 busybox-1.27.2
2056 text files.
2101 text files.s
2303 files ignored.
http://cloc.sourceforge.net v 1.60 T=101.38 s (0.0 files/s, 0.0 lines/s)
--------------------------------------------------------------------------------
Language files blank comment code
--------------------------------------------------------------------------------
(...)
C++
same 1 0 62 1197
modified 0 0 0 0
added 0 0 0 0
removed 0 0 0 0
(...)
C/C++ Header
same 52 0 2162 5316
modified 8 0 5 33
added 5 169 298 673
removed 0 0 9 21
(...)
C
same 389 0 51434 155066
modified 227 0 574 1237
added 38 1305 3978 8354
removed 15 295 1357 2287
-------------------------------------------------------------------------------
SUM:
same 609 0 55690 175471
modified 256 0 586 1306
added 48 1515 4322 9190
removed 16 301 1370 2347
-------------------------------------------------------------------------------
sample Vérifiez le fonctionnement de cloc à l'aide de l'exemple de code source.
test.c
1 #if 0
2 const int rodata = 10;
3 int data = 20;
4 int bss = 0;
5 #endif
6
7 /*-
8 * main function
9 */
10 int main(int argc, char* argv[])
11 {
12 return 0; /* no count comment */
13 }
14
console
$ cloc test.c
1 text file.
1 unique file.
0 files ignored.
http://cloc.sourceforge.net v 1.60 T=0.02 s (60.8 files/s, 850.7 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 1 2 3 9
-------------------------------------------------------------------------------
$ cloc test.c
1 text file.
1 unique file.
0 files ignored.
http://cloc.sourceforge.net v 1.60 T=0.02 s (57.8 files/s, 808.7 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 1 2 3 9
-------------------------------------------------------------------------------
le code est 9. Les lignes contenant uniquement des commentaires et des blancs ne sont pas comptées. Les instructions du préprocesseur sont comptées. ** \ # si 0 est compté. ** **
Recommended Posts