gpt4 book ai didi

c - 为什么 gcc -o0 会比 icc -o0 快?

转载 作者:太空宇宙 更新时间:2023-11-04 00:27:10 25 4
gpt4 key购买 nike

对于我必须做的简短报告,我们的类(class)使用 gcc -O0 和 icc -O0 在集群上运行代码。我们发现 gcc 在没有任何优化的情况下比 icc 快 2.5 倍左右?为什么是这样? gcc -O0 实际上做了一些小的优化,还是只是碰巧更适合这个系统?

该代码是发现 here 的朴素字符串搜索算法的实现。 , 用 c 语言编写。

谢谢

最佳答案

-O0 的性能没有意义或没有任何意义。它明确地说“我不关心性能”,编译器会帮你解决这个问题;它只是做最简单的事情。幸运的是,对于特定硬件配置上的一个高度特定的微基准测试,GCC 最简单的速度比 ICC 最简单的速度更快。如果您运行 100 个其他微基准测试,您可能会发现 ICC 速度更快的一些地方。即使你不这样做,那也没有多大意义。如果您要比较不同编译器的性能,请启用优化,因为如果您关心性能,这就是您要做的。

如果您想了解为什么速度更快,请分析执行情况。执行时间花在哪里了?哪里有摊位?为什么会出现这些停顿?

关于c - 为什么 gcc -o0 会比 icc -o0 快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112439/

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