例如,着名库HtmlAgilityPack源的最后一个版本类似于110 000行C#,并且程序集为132 KB.
https://www.openhub.net/p/htmlagilitypack
我的项目大约是6500行,编译成300 KB的程序集.
我没有广泛关注源代码,但显然不是100K loc可用类.那么大量的代码在做什么呢?
除了调试与发布模式等差异之外,我怀疑将您的 6,500 行与源代码中的“110,000”行进行比较是有误导性的。
代码行数是一个奇怪的指标。如果您查看按语言进行的细分,您会发现所有项目的 C# 中只有大约 55 个 KLOC (其中只有一个是实际的 Agility Pack 程序集),其中大部分是(我怀疑)大括号和其他“空白”这不会直接在二进制文件中表示。此外,仅浏览一下它,它就不会使用大量自动实现的属性,这些属性使用更少的代码行来实现相同的功能。例如:
internal int _lineposition;
public int LinePosition
{
get
{
return this._lineposition;
}
internal set
{
this._lineposition = value;
}
}
Run Code Online (Sandbox Code Playgroud)
相对
public int LinePosition {get; internal set;}
Run Code Online (Sandbox Code Playgroud)
12 行代码与相同数量的编译代码的1 行代码相比。
综上所述,使用代码行数作为程序“大小”的度量有很多注意事项。