compiler-optimization 相关问题

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

为什么严格的别名规则不适用于int *和unsigned *?

在C语言中,我们无法使用与该对象的有效类型具有不兼容类型的左值表达式来访问对象,因为这会导致未定义的行为。并基于此......

回答 2 投票 3

将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.