compiler-optimization 相关问题

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

我如何进行无限循环(不会被优化掉)? (Clang,Clang)

C11标准似乎暗示不应优化具有恒定控制表达式的迭代语句。我从这个答案中获取建议,该答案特别引用了...

回答 2 投票 5

数组可以在物理内存中的多个位置吗?

假设我有一个数组,其中存储了一些敏感数据。覆盖阵列的每个元素可确保从物理内存中的当前位置擦除数据。但是,可以有任何...

回答 1 投票 0

开销执行成员函数的实现

我有一个基类和一个派生类。 Base类的唯一目标是确保Derived实现成员函数。 struct Base {virtual void f()= 0; };派生的struct:Base {...

回答 1 投票 3

与在编译时未解析的字符串文字进行比较

我最近发现了类似于以下几行的内容:#include //测试扩展名是.bar还是.foo bool test_extension(const std :: string&ext){return ext ==“ ....] >

回答 1 投票 8

链表是否由编译器优化?

Scala提供了一种使用地图构造将集合转换为另一个集合的惊人方法。 val l = List(1、2、3、4)l.map(_ * _)将返回我遇到的列表l中元素的平方...

回答 2 投票 5

为什么此代码击败rint(),以及如何保护它免受-ffast-math和朋友的侵害?

我正在寻找一种方法来保护某些代码工作免受跨C编译器工作的-ffast-math(或msvc / icc等效项等)的影响。我的内部循环是在数据中搜索接近...

回答 1 投票 0

位掩码检查比比数字更有效吗?

有人告诉我,基于位掩码的检查比比较数字更有效。这是真的? “基于位掩码”检查:if(val&IMPORTANT_BIT)...数字比较:if(val == ...

回答 2 投票 2

不同版本的编译器(例如GCC)会产生不同的性能吗?

我很久以来一直在问一个问题,即新版本的C / C ++编译器是否生成性能更好的更好代码(例如G ++ 7.3与G ++ 4.8)?如果这样做,加速的源头是什么?如果...

回答 1 投票 0

是否存在类似于intel ifort的-ipo-c的Gfortran标志,该标志会从所有编译文件中生成单个优化对象?

Intel Fortran编译器/链接器具有可选的标志-ipo-c或/ Qipo-c,该标志使所有文件都可以生成经过过程优化的单个目标文件,以后可以用于...

回答 1 投票 0

[g ++ -O3为循环创建奇怪的指令

我正在编写一些使用c ++进行数值计算的代码。我需要非常仔细地编写代码,以帮助编译器生成良好的指令。然后,我发现对于带有-O3的g ++ 9.2,有些奇怪之处。

回答 1 投票 6

为什么我的阶乘程序正常工作,而我几乎相同的pow程序却无效?

这是我的阶乘程序,它正在执行并给出正确的结果:#include int main(){int n; printf(“ enter the no =”); scanf(“%d”,&n); fun(n); ...

回答 2 投票 5

在Code Composer Studio编译器中禁用64位分割

我目前正在使用Code Composer Studio(CCS)V7.4.0.00015用C编写程序。该程序具有几个自写的库,它们执行Byte,unsigned int和float除法。我已经到达...

回答 1 投票 0

在继承的C ++中通过值传递对象

我正在学习C ++,在我的老师的课程中,他解释说多态性与按值传递不兼容。他解释说,当您按值将对象传递给方法时,编译器...

回答 1 投票 1

这是否是错过的优化机会

我发布了这个答案。代码:#include #include void printImpl(...); std :: atomic printLog = false;类Log {public:template ... ]

回答 1 投票 2

为什么在测量针对循环和编译器优化而并行化的OpenMP的执行时间时std :: chrono不起作用?

我有一个简单的代码:#include #include int main(int argc,char ** argv){int I = 0;双倍时间= 0.0; for(int i = 0; i <10; ++ i){auto begin1 = std :: chrono :: ......>

回答 1 投票 0

为什么使用默认构造函数“ {}”而不是“ = default”会产生性能差异?

我最近注意到我在性能方面受到了打击,因为我声明了一个默认的构造函数,例如:Foo()= default;而不是Foo(){}(仅供参考,我需要明确声明它,因为...

回答 2 投票 0

gcc标志以禁用算术优化

gcc / g ++是否有用于启用或禁用算术优化的标志,例如当a为整数时,其中a + a + ... + a被n * a代替?特别是在使用-O2或-O3时可以禁用此功能吗?在...

回答 1 投票 2

Java 8:Class.getName()减慢了字符串连接链的速度

最近,我遇到了有关字符串串联的问题。该基准对其进行了总结:@OutputTimeUnit(TimeUnit.NANOSECONDS)公共类BrokenConcatenationBenchmark {@Benchmark公共...

回答 2 投票 7

Intel汇编程序与Intrinsics,AVX

我有一个简单的向量-矢量加法算法(c = a + b * lambda),它使用AVX指令以intel汇编语言编写。这是我的代码:;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;; ...

回答 1 投票 2

为什么GCC集合的数组初始化会首先用零填充整个东西,包括非零元素?

为什么gcc用零而不是仅剩余的96个整数填充整个数组?非零初始化程序都位于数组的开头。 *沉没; void bar(){int a [100] {1,2,3,4}; ...

回答 1 投票 21

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