Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/143.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有人拥有gcc'的经验;s LTO(C+;+;)?_C++_Gcc - Fatal编程技术网

C++ 是否有人拥有gcc'的经验;s LTO(C+;+;)?

C++ 是否有人拥有gcc'的经验;s LTO(C+;+;)?,c++,gcc,C++,Gcc,我的主要兴趣是将代码从头文件移动到源文件(用于解耦),但保持内联内容的相同性能 我不知道从哪里开始,有人能解释一下该怎么做吗?我们做了非常有限的实验。在我们的例子中,性能的提高是可以忽略的,但是因为我们已经注意到了良好的内联,所以这也就不足为奇了 然而,启用LTO会导致GCC的内存消耗大幅增加,基本上使我们的4 CPU/4 GB开发机器无法进行并行编译,因此我们暂停了该实验,并等待将来的版本重试。我在Firefox和LTO上做了一些测试,显示了内存使用情况、编译时间和运行时间 并与LLVM进行了

我的主要兴趣是将代码从头文件移动到源文件(用于解耦),但保持内联内容的相同性能


我不知道从哪里开始,有人能解释一下该怎么做吗?

我们做了非常有限的实验。在我们的例子中,性能的提高是可以忽略的,但是因为我们已经注意到了良好的内联,所以这也就不足为奇了


然而,启用LTO会导致GCC的内存消耗大幅增加,基本上使我们的4 CPU/4 GB开发机器无法进行并行编译,因此我们暂停了该实验,并等待将来的版本重试。

我在Firefox和LTO上做了一些测试,显示了内存使用情况、编译时间和运行时间
并与LLVM进行了比较。LTO正在快速发展,GCC4.9比以前的版本要好得多。如何让它在给定的应用程序中正常工作并不总是显而易见的,本文描述了您可能遇到的主要问题(缺少链接器插件、使用大量LTO文件以及在link和其他应用程序中丢弃LTO部分)

也许您可以解释一下什么是LTO?链接时间优化?这很悲哀;LTO使C更易使用,imo;目前,通常不可能使用不透明指针,因为您需要内联函数的完整定义。您是否尝试使用
-fwhopr
选项来降低内存消耗?这方面是否有任何更新?你又试过了吗?GCC4.7.0变更日志表明已经做出了重大改进(他们给出的示例是使用LTO构建firefox,GCC4.7需要3GB,而以前的版本需要8GB),使用WHOPR可能会获得更好的结果-fwhopr:这类似于-flto,但它拆分编译以实现可伸缩性。→