compiler-optimization 相关问题

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

为什么这个程序在Linux上比在Windows上慢很多?

我尝试在 Linux 上运行这段代码,但我发现它在 Linux 上的运行速度比在 Windows 上慢 2 倍到 3 倍。使用其官方输入示例 data/BS_1000_torus.xyz,在 Windows 上需要大约 20 秒,但在 Linux 上......

回答 1 投票 0

我应该使用哪个选项来设置 CMake 中的编译器选项?

我注意到似乎有两种方法可以在 CMake 文件中设置编译器选项: target_compile_options(${TargetName} PRIVATE "-O3") 或者 设置(CMAKE_CXX_FLAGS“${CMAKE_CXX_FLAGS} -O3&qu...

回答 1 投票 0

Lua 在发出字节码时如何利用 <const>?

我正在摆弄 Lua 并使用 https://www.luac.nl/ 来看看它如何转换为字节码。我想看看是否有类似 if boolean_always_true then ... end 的模式,布尔值是用 <...

回答 1 投票 0

应用程序未在发布模式下进入 Posix 信号处理程序

我正在尝试在 Linux Arm 设备上正常关闭我的控制台应用程序。发送的信号是 SIGTERM。我使用新的 PosixSignalRegistration.Create() 实现了 Posix Sgnal Handler

回答 1 投票 0

为什么 GCC 和 Clang 会在两个分支上弹出而不是只弹出一次?

GCC 和 Clang 都可以编译 布尔预测(); 无效 f(); 无效 g(); 无效 h() { 如果(预测()){ F(); } 别的 { G(); } } 到一些变化 # Clang -Os 输出。 -O3是一样的 哈...

回答 1 投票 0

我应该使用哪些 gcc 优化标志?

如果我想最小化我的C程序运行时间,我应该使用什么优化标志(我也想保持标准) 目前我正在使用: -墙 -Wextra -迂腐 -ansi -O3 我也应该使用...

回答 3 投票 0

MSVC c++ 中 Release 模式与 Release + O2 模式之间的区别

在 Visual Studio 中,为了加快我的程序速度,我调整了两件事: 第一个是将Debug模式变成Release模式。 第二个是打开-O2(所以必须关闭

回答 1 投票 0

编译器可以优化不依赖于for循环变量的for循环中的计算吗?

假设我有一个看起来像这样的热循环(它是用 C 语言编写的,但这个问题通常适用于编译命令式语言): int max_dist = some_value; 对于 (int x = min_x; x <= max_x; +...

回答 1 投票 0

C编译器是否必须将&&和||短路没有必要吗?

C 短路&& 和||。 与按位 | 不同运算符,||运算符保证从左到右评估;如果计算第二个操作数,则

回答 1 投票 0

改进 g++ 编译器标志以进行调试和发布

我正在使用 sdl2 用 c++ 制作游戏,目前正在使用以下标志使用 g++ 编译程序: DEBUG_FLAGS = -g -Og -DDEBUG RELEASE_FLAGS = -O3 -DNDEBUG -mwindows -s 我想要...

回答 1 投票 0

为什么 Rust 不重新排序枚举中的字段以进行内存布局?

我知道 Rust 结构中的字段会自动重新排序以节省内存(除非指定了 #[repr(C)])。 我假设枚举也是如此。 今天我正在创建一个

回答 1 投票 0

调用带有取消引用指针的引用的函数的成本是多少?

在以下类型的代码中从指针转换为 ref 是否有任何成本? 空栏(Obj&); 无效 foo(Obj* o) { 酒吧(*o); } 一方面,指针的值是Obj的地址,...

回答 1 投票 0

Avx2 内在函数不使用所有可用的寄存器。 .NET 8

我使用 SIMD 优化了某些算法,使得它们与 L1 缓存相比具有延迟限制。由于只有 C# 编译器知道的原因, said 莫名其妙地发出只使用 ym 的代码...

回答 1 投票 0

如何查看在 Visual Studio Code 中运行程序所花费的时间?

有没有办法查看 VS Code 中脚本执行/完成所需的时间? 我正在寻找类似以下的消息: 程序在 30ms 内完成

回答 5 投票 0

打字稿:“该节点的推断类型超出了编译器将序列化的最大长度。需要显式类型注释。”

我收到错误 “该节点的推断类型超出了编译器序列化的最大长度。需要显式类型注释。” 几个小时后效果很好...

回答 3 投票 0

C 中结构体中 __attribute__((aligned(4), Packed)) 的用法

我想使用该结构来存储一些数据,然后通过DMA传输它。然而,外围设备的具体情况要求结构的初始地址沿 4 字节边界对齐...

回答 1 投票 0

如果一个项目没有包含,但仅使用C++20模块,编译器会看到每个函数体吗?

以这段代码为例(演讲 LLVM 优化备注 - Ofek Shilon - CppCon 2022,21:28): void somefunc(const int&); int Whateva(); 无效 f(int i, int* res) { 一些...

回答 2 投票 0

代码显示 int j=1;调试器说 j=3 (C++)

老实说问题很简单,但我不知道如何解决。在我的程序中,该行显示 int j=1;但调试器说它等于 3。我什至将 int j 从循环中取出来突出显示...

回答 1 投票 0

为什么某些 x64 编译器不内联 fmin/fminf?

我最近一直在各种编译器上对一些快速数字代码进行基准测试,并对某些编译器在最大优化 -O2 和 AVX/AVX2...

回答 1 投票 0

如何在不查看编译代码的情况下检查代码块是否已优化?

如何在不查看编译代码的情况下检查代码块是否已优化? 例如。: void Func(const int val) { 常量 int minVal = 100; if(val > minVal) { // 复杂代码

回答 1 投票 0

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