Ran*_*lue 8 executable google-chrome compilation
这简直让我感到困惑.我刚刚下载了Chrome源代码的1.5GB tarball.编译的相同代码压缩到大约50MB.
为什么源代码的大小和可执行文件的大小之间存在这样的差异?
Jer*_*via 13
可能导致此问题的列表.
可执行文件不需要空格,注释或任何好的格式化东西.源代码可能有大量的文档和空格,只是为了使代码可读,所有这些都占用了空间.
源代码可能会带来很多其他代码来测试应用程序.但是这个测试代码永远不会进入最终的应用程序.
代码中包含的文档.根据格式,.doc或.docx文件,文档可能很大.
其他人提到源代码控制注释也可能在代码中.在源代码中包含提交消息也可以使文件变大.
我不知道你何时/何时进行文件比较,但如果你在编译时间之后就这样做了,那么你可能也在计算中包含了编译工件(*.o文件).因此,当它实际上只有750 MB(粗略地说)时,您可能会感觉源代码为1.5GB.
根据编译器及其有多好,它可能会生成更少的汇编代码,从而创建更小的文件.虽然我认为今天的大多数编译器都是合理的,但这不应该考虑到太大的尺寸差异.(但我可能是错的,我不是编译人员)
如果应用程序正在使用所有库进行静态编译,那么它将更大,因为现在它必须包含它的依赖项.但是,如果动态链接/加载库,则可执行文件本身可能会大大减小,因为它只会在运行时链接到库,并且只在需要时加载它们.
tarball是1.5GB还是1.5GB的扩展tarball?
无论如何,很多因素都可以在这里发挥作用.
小智 8
所有源代码文件顶部的版权/许可证平均为1621个字节.Chromium(没有任何svn/git/object/image文件)有73,510个源文件(为此,我把它保存在.cc, .h,.cpp, .idl,.m, .js,.c, .py) .
这只是119159710字节的版权声明.
或116366千字节
或133兆字节.只是.in ..版权声明..
更糟糕的是,Chromium上存在漏洞,表明它们甚至可能违反了自己的许可证,因为它们混合了许多不同的口味和版本的开放式(以及一些不那么开放的)许可证.[1]
资料来源:
[1] https://code.google.com/p/chromium/issues/detail?id=28291
[2]我使用铬源代码:
Trevors-Mac:src trevor $ find.-name"*.cc"| wc -l
15941
Trevors-Mac:src trevor $ find.-name"*.h"| wc -l
26125
Trevors-Mac:src trevor $ find.-name"*.cpp"| wc -l
5191
Run Code Online (Sandbox Code Playgroud)
Trevors-Mac:src trevor $ find.-name"*.idl"| wc -l
881
Run Code Online (Sandbox Code Playgroud)
Trevors-Mac:src trevor $ find.-name"*.m"| wc -l
258
Run Code Online (Sandbox Code Playgroud)
Trevors-Mac:src trevor $ find.-name"*.js"| wc -l
13528
Trevors-Mac:src trevor $ find.-name"*.c"| wc -l
7856
Run Code Online (Sandbox Code Playgroud)
Trevors-Mac:src trevor $ find.-name"*.py"| wc -l
3988
Run Code Online (Sandbox Code Playgroud)
Trevors-Mac:src trevor $
归档时间: |
|
查看次数: |
2713 次 |
最近记录: |