compiler-optimization 相关问题

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

如何在多态语言中找到正确的函数指针?

假设我们有类似 Java 语言的接口: 界面动物{ 公共 int getAge(); } 界面可驯服{ 公共无效驯服(); } 这些接口由类实现: c...

回答 1 投票 0

哪些规格最适合在 2023 年的 Linux 笔记本电脑上编译 Rust?

我正在寻找一台新的笔记本电脑,它主要用于编程,特别是防锈,并且希望获得性能最好的东西。我宁愿每 2 年更换一次笔记本电脑 ...

回答 0 投票 0

C++ 元编程与编译器优化

递归(非缓存)斐波那契的玩具问题可以实现如下: #包括 int 斐波那契(int n){ 如果(n<= 1) return n; else return

回答 1 投票 0

带有逐列寻址顺序的有问题的向量化 (C)

出于某种原因,按列寻址顺序的代码被向量化了。但是看了编译器的解释,不清楚到底是什么被向量化了。 列顺序示例...

回答 0 投票 0

删除 nullptr 可能会也可能不会调用释放函数。为什么不保证后者?

C++20 标准说(见 [expr.delete]) 如果 delete-expression 的操作数的值为空指针值, 未指定释放函数是否将被称为描述...

回答 2 投票 0

O2优化如何计算faulhaber公式?

考虑这样一个C程序 int fn(int n){ 整数总和= 0; 对于(int i = 1; i <= n; i++) sum += i*i; return sum; } int main(){ int n; scanf("%d",&n); prin...

回答 0 投票 0

为什么 GCC bootstrap 后我的 stage-2 和 stage-3 不同

我最近从官方 git 存储库开始自己构建 gcc。我正在使用 Arch Linux,并从官方存储库安装了所有必要的库。我做了以下事情: 氯...

回答 0 投票 0

比较 C 和 avx2 程序集性能的基准测试方法?

我想了解有关基准测试的详细信息。如果我想比较 C 和 avx2 手写汇编实现之间的性能。 我应该使用 -O3 编译器标志吗?但是 -O3 会优化 C 并使...

回答 1 投票 0

最新的 C++ 标准的哪些条款说这个循环是未定义的行为? [重复]

上下文。以下程序是由于无副作用的无限循环导致的 C++ 中未定义行为的示例。 (如果我们用 clang++ 编译这个程序并打开优化级别 1 (...

回答 0 投票 0

在 C/C++ 中如何确保内存写入是在读取之后?

我最近在研究 C/C++ 中的 memory_order,我已经阅读了 https://en.cppreference.com/w/cpp/atomic/memory_order , https://gcc.gnu.org/wiki/Atomic/GCCMM /AtomicSync ,但对

回答 0 投票 0

针对同一对象重复调用同一函数的虚函数优化

假设有这样一个抽象类: 类基础{ 民众: 虚空 f() = 0; 虚拟 ~Base() = 默认值; }; 还有一些功能: void 函数 (Base& x, bool flag1, bool flag2,

回答 3 投票 0

在 Turbo Pascal 中编译的带有空项目的 COM 文件超过 10 KiB

我对旧 Pascal 版本的二进制大小有疑问。 我们需要非常小的简单程序。我们想在MS-DOS下使用Turbo Pascal 2(更高也是同样的问题)来编译COM文件。 ...

回答 2 投票 0

What's Go cmd option 'gcflags' all possible values

我正在通过内联学习 Go 内存优化。下面的代码是我的测试代码。 我使用 go build -gcflags=-m=2 main.go 来获取所有结果。我按照 Dave Cheney 的帖子来做这件事。 我的

回答 2 投票 0

MSVC:为什么调用静态函数比调用实例方法生成更多的汇编代码?

反汇编我的应用程序时,我注意到与实例方法相比,当我调用静态方法时,MSVC 会生成更多的汇编操作码。即使两个函数都是

回答 0 投票 0

带有 Rust 的窥视孔装配说明模式匹配窗口的更好方式?

所以我正在尝试实现窥孔优化,从 Vec -> Vec 开始,优化返回列表。 (LL 为低电平) 我们的

回答 2 投票 0

LLVM Loop pass - 新的通行证管理器

我正在尝试在 llvm 中创建循环传递 - 使用新的传递管理器。 我在 /llvm/include/llvm/Transforms/Utils/MyLoopPass.h 中放置了一个头文件 头文件的内容如下: #ifn...

回答 0 投票 0

在此阵列访问微基准测试(相对于 GCC)中,Go 的性能降低了 4 倍?

我写这个微基准测试是为了更好地理解 Go 的性能特征,这样我就可以在何时使用它时做出明智的选择。 我认为这将是理想的场景......

回答 2 投票 0

C 中的操作重新排序和签名

我发现了几个讨论有符号和无符号编译器优化的问题。 一般的结论是,由于溢出的未定义行为,signed 允许进行更多优化。 呵呵……

回答 1 投票 0

为什么这个 bevy 项目需要这么长时间才能编译和启动?

我开始按照本教程学习如何制作游戏。代码编译正常,但仍然很慢(老实说我不确定这是否正常,大约需要 8 秒),但是当我...

回答 1 投票 0

Rust 是否检测到重复的闭包(例如在循环中定义的闭包)?

当我需要调用很多失败的函数时,我有时会把它们放在闭包中。 然后我 ?它们并捕获任何特殊变体(其他语言中的异常机制)。 以下是我的解决方案...

回答 2 投票 0

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