为了我的研究目的,我正在计算一些包的 SLOC(源代码行数)。我正在从 Debian 快照下载不同年份的软件包源。对于大多数包来说,SLOC 数量都在逐年增加,例如 Wireshark,2010 年 SLOC 比 2011 年少,但会更多,并且一直持续增加到 2018 年。
但对于 OpenJDK 6、7 和 8,情况有所不同。openjdk-7
具有比 更小的 SLOC 计数openjdk-6
。openjdk-8
具有比 更小的 SLOC 计数openjdk-7
。为什么会这样?
Debian 快照有问题吗?也许没有完整的源代码,或者这个包一般都是这样的?
如果您查看 OpenJDK 源包的内容,您会发现它们的大部分源代码都包含在包内的 tarball 中。如果您仅在提取的包源上运行David A. Wheeler 的 SLOCCount,它不会计算那些 tarball 中的代码,因此您将得到非常部分的计数。
要正确比较源代码大小,您需要在运行
sloccount
. 这样做会给出以下统计数据(在我分析的版本上):显示尺寸增加(但请注意,包的范围也随时间变化)。