gpt4 book ai didi

c# - 为什么一些大型项目会编译成小型程序集?

转载 作者:太空狗 更新时间:2023-10-29 20:38:37 26 4
gpt4 key购买 nike

例如,著名库 HtmlAgilityPack 源码的最新版本大约有 110 000 行 C#,程序集有 132 KB。

https://www.openhub.net/p/htmlagilitypack

我的项目大约有 6500 行,编译成 300 KB 的程序集。

我没有仔细查看源代码,但它显然不是 100K loc 可用类。那么大量的代码在做什么?

最佳答案

除了 Debug模式与 Release模式等差异之外,我怀疑将您的 6,500 行与其源代码中的“110,000”行进行比较会产生误导。

代码行数是一个古怪的指标。如果您查看 breakdown by language ,您会看到 C# 所有项目 中只有大约 55 个 KLOC(其中只有一个是实际的 Agility Pack 程序集),其中大部分是(我怀疑)大括号和其他“空白”不会直接在二进制文件中表示。此外,只是浏览它,它不会使用很多自动实现的属性,这些属性使用更少的代码行来实现相同的功能。例如:

internal int _lineposition;

public int LinePosition
{
get
{
return this._lineposition;
}
internal set
{
this._lineposition = value;
}
}

对比

public int LinePosition {get; internal set;}

12 行代码与 1 行代码相比,相同数量的编译代码

综上所述,使用代码行数作为衡量程序“大小”的指标有很多注意事项。

关于c# - 为什么一些大型项目会编译成小型程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37727111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com