compiler-optimization 相关问题

编译器优化涉及调整编译器以减少运行时或对象大小或两者。这可以使用编译器参数(即CFLAGS,LDFLAGS),编译器插件(例如DEHYDRA)或对编译器的直接修改(例如修改源代码)来实现。

将bool从参数复制到全局 - 比较编译器输出

完全知道这些完全人为的基准测试并不重要,但我对“大4”编译器选择编写一个简单的片段的几种方式感到有点惊讶。结构在{...

回答 2 投票 13

为什么使用LTO会增加Rust二进制文件的大小?

简介我完成了一个小型Rust项目(大约300行代码),具有以下依赖项:rumqtt signal log env_logger问题使用货物构建时 - 请不要再进一步发布...

回答 2 投票 14

com.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize的用法和性能

我们遇到了一个JaxB类加载问题,正如Jaxb classCastException所强调的那样。为了解决这个问题,我添加了com.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize = true,实际上修复了这个问题。 ...

回答 1 投票 1

在成员函数中循环内部的std :: vector c ++ size()的性能

类似的问题,但不太具体:循环中vector :: size()的性能问题假设我们在一个成员函数中:void Object :: DoStuff(){for(int k = 0; k <(int)this - > ...

回答 4 投票 2

当函数返回时,C ++向量实例是可操作的

在我的课上,我有两个矢量对象:std :: vector vecteur_noms_A_;的std ::矢量 vecteur_noms_B_;我还有以下函数:std :: vector

回答 1 投票 0

如何让GCC为没有内置的大端存储生成bswap指令?

我正在研究一种以大端格式将64位值存储到内存中的函数。我希望我能编写可在小端和大端平台上运行的便携式C99代码,并且...

回答 3 投票 19

有没有一个很好的理由为什么GCC会跳过跳过一个便宜的指令?

我在循环代码中对一些计数进行基准测试。 g ++与-O2代码一起使用,我发现在50%的情况下,当某些条件为真时,它会出现一些性能问题。我以为那可能意味着......

回答 1 投票 0

是否将参数加载到缓存中以获取空函数?

我知道C ++编译器优化了空(静态)函数。基于这些知识,我编写了一段代码,每当我定义一些标识符时,都应该优化掉(使用-D选项...

回答 3 投票 0

成员变量在赋值后保存垃圾值

我遇到了一个奇怪的场景,我无法弄清楚它为什么会发生。我有一个带有简单int成员的对象。 className.h文件:private:int m_variable;上市: ...

回答 1 投票 0

HotSpot可以优化掉纯方法的冗余调用而无需内联它们吗?

纯方法是没有副作用的方法:它们唯一的作用是返回一个值,该值是它们的参数的函数。使用相同参数对同一个纯方法的两次调用将返回...

回答 1 投票 7

什么是Microsoft Warbird(在VS2015编译器中)

最近我在Visual Studio 14(2015)的编译器中发现了一个名为Warbird的东西。我用谷歌搜索但没有发现任何东西。除了这里的4个参考:http://msdn.microsoft.com/en-us / ...

回答 2 投票 1

未在代码中调用的函数在运行时调用

如果从未在代码中调用过以下程序如何调用never_called? #包括 static void never_called(){std :: puts(“format hard disk drive!”); } static void(* ...

回答 2 投票 24

未定义的行为是否真的有助于现代编译器优化生成的代码?

现代编译器不够智能,无法同时生成快速安全的代码吗?看看下面的代码:std :: vector 一个(100); for(int i = 0; i <50; i ++){...

回答 4 投票 2

当C ++将元素从函数的返回值存储到std :: vector时出现意外的结果

当函数涉及重新分配时,我发现一些编译器可能在函数调用之前保存地址。它导致存储在无效地址中的返回值。有一个例子可以解释......

回答 2 投票 45

printf函数中表达式的评估[关闭]

请看下面的代码#include int main(void){int * ptr,a,b; a = ptr; b = ptr + 1; printf(“a,b的值分别是%d和%d \ n”,a,b); printf(“价值......

回答 2 投票 -3

为什么gcc不能虚拟化这个函数调用?

#包括 #包括 struct Interface {virtual void f()= 0; }; struct Impl1:Interface {void f()override {std :: puts(“foo”); }}; // 要么 ...

回答 2 投票 29

GCC中Early inliner和IPA inliner有什么区别?

通过GCC代码注释和在线文档阅读,似乎有两种类型的内联器 - 早期内联器和IPA内联器。例如,在gcc / ipa-fnsummary.c / *中优化和...

回答 2 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.