gpt4 book ai didi

c++ - 是否有关于使用 C++ 编译器进行 C 编译的结论性研究/实验?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:33 26 4
gpt4 key购买 nike

我见过很多关于用 C++ 编译器编译的 C 代码的一般性能的争论——我很好奇是否有任何可靠的实验研究隐藏在所有轶事之下您在网络搜索中找到的火焰 war 。我对 GCC 套件特别感兴趣,但任何数据点都会很有趣。 (比较“Hello, World!”的程序集并不像我想要的那样健壮。:-)

我通常假设您使用“嵌入式样式”标志——没有异常(exception)或 RTTI。我也不介意知道是否有关于编译时间本身的研究。 TIA!

最佳答案

添加一个数据点(或者至少是一个轶事):

我们最近正在为一个类似嵌入式的小型目标编写一个数学库,并开始用 C 编写它。大约在项目进行到一半时,我们将一些文件切换为 C++,主要是为了使用模板来处理一些函数,否则我们将编写许多几乎相同的代码片段(或者在预处理器宏中嵌入 40 行函数)。

在我们开始切换时,我们非常仔细地查看了一些函数生成的汇编代码(使用 GCC),并确认文件是否编译为 C 实际上基本相同或 C++——我所说的“基本相同”是指不同之处在于符号名称以及汇编文件开头和结尾的内容;函数中间的实际指令完全相同。

抱歉,我没有更可靠的答案。

编辑添加,2013-03-24:最近我看到一篇文章,其中 Rusty Russell 比较了使用 C 编译器编译和使用 C++ 编译器编译的 GCC 的性能,以回应最近的切换到将 GCC 编译为 C++:http://rusty.ozlabs.org/?p=330 .结论很有趣:用 C++ 编译器编译的版本稍微慢一点;差异约为0.3%。然而,这完全可以用更大的调试信息导致的加载时间差异来解释;当他剥离二进制文件并删除调试信息时,差异小于 0.1%——也就是说,基本上与测量噪声无法区分。

关于c++ - 是否有关于使用 C++ 编译器进行 C 编译的结论性研究/实验?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1276284/

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