openjdk-6、openjdk-7 和 openjdk-8 在 SLOC 数量方面的差异?

openjdk-6、openjdk-7 和 openjdk-8 在 SLOC 数量方面的差异?

出于研究目的,我正在计算某些包的 SLOC(源代码行)计数。我正在从 Debian 快照下载不同年份的软件包源。对于大多数软件包,SLOC 数量逐年增加,例如 Wireshark,2010 年 SLOC 比 2011 年少,但更多,并且一直增加到 2018 年。

但对于 OpenJDK 6、7 和 8,情况有所不同。openjdk-7的 SLOC 数量比 少openjdk-6openjdk-8的 SLOC 数量比 少openjdk-7。为什么会这样呢?

Debian 快照有问题吗?也许完整的源代码不可用,或者这个包通常是这样的?

答案1

如果您查看 OpenJDK 源代码包的内容,您会发现它们的大部分源代码都包含在包内的 tarball 中。如果你跑David A. Wheeler 的 SLOCCount仅在提取的包源上,它不会计算这些 tarball 中的代码,因此您将获得非常部分的计数。

为了正确比较源代码大小,您需要在运行之前提取 tarball sloccount。这样做会给出以下统计数据(在我分析的版本上):

            openjdk-6           openjdk-7           openjdk-8
java:       2860304 (68.33%)    3232714 (72.32%)    3601973 (67.00%)
cpp:         648574 (15.49%)     671628 (15.03%)     892040 (16.59%)
ansic:       584813 (13.97%)     466742 (10.44%)     374378 (6.96%)
sh:           49935 (1.19%)       45608 (1.02%)       32891 (0.61%)
xml:          23937 (0.57%)       25927 (0.58%)      456037 (8.48%)
objc:                             13062 (0.29%)       13557 (0.25%)
asm:          14125 (0.34%)       11555 (0.26%)        3508 (0.07%)
perl:          2258 (0.05%)        1220 (0.03%)         198 (0.00%)
pascal:        1089 (0.03%)
awk:            631 (0.02%)         687 (0.02%)         367 (0.01%)
python:         310 (0.01%)         310 (0.01%)         800 (0.01%)
haskell:                            195 (0.00%)         195 (0.00%)
sed:                                                    172 (0.00%)
cs:              72 (0.00%)          72 (0.00%)          72 (0.00%)
ruby:                                44 (0.00%)          44 (0.00%)
jsp:             24 (0.00%)          24 (0.00%)          24 (0.00%)
csh:              3 (0.00%)           3 (0.00%)           3 (0.00%)

显示大小增加(但请注意,包的范围也随着时间而变化)。

相关内容