c++ - 基本 C++ 速度(初始化与添加)和比较速度

标签 c++ c comparison initialization performance

我很好奇是否有人知道以下哪个执行得更快(我知道这似乎是一个奇怪的问题,但我正试图从我的程序中尽可能多地节省时间和资源。)

int i=0;

i+=1; 

int i;

i=1;

我也很好奇哪个比较更快:

//given some integer i
// X is some constant
i < X+1

i<=X

对于那些已经发布答案的人,我很抱歉,我对其进行了编辑,因此第一部分是正确的,我的意思是如果我被初始化为 0。再次对造成的混淆表示歉意。

最佳答案

第一个操作可能没有意义,因为,除非 i是静态的,你离开了i未初始化。

您被误导了,并且关注了错误的事情。猜测不会带你到任何地方;拿出一个概要文件,概要分析你的代码,然后用数据找出哪些部分需要优化。优化是设计更改,无论是不同的数据结构还是算法。

严重低估了编译器。您所做的任何事情都不会因如此微小的更改而有所不同,两者都会编译为编译器决定更快的任何一个。如果你想要一个整数,只需执行:int i = 1;过你的生活。如果你想比较一个整数是否小于或等于 X,那么就这样说:i <= X; .编写干净可读的代码。附带说明一下,当 X 处于最大值时,您的两个比较是不一样的;添加一个就会溢出。

如果你真的很认真,再说一遍:拿出一个分析器。另一件事是查看生成的程序集,看看它生成了哪些指令。如果您不知道如何做到这一点,您很可能不适合需要优化。 :/

关于c++ - 基本 C++ 速度(初始化与添加)和比较速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2525485/

相关文章:

c++ - 重载给定类中的运算符 C++ 作为来自不同类的运算符

c++ - 如何对 vector 或 deque KeyPair 进行排序

c++ - 帮助显式模板特化

c - 我正确使用结构吗?

android - 匹配两个音频文件

c++ - 获取内存地址 X 的值

c - 按Q退出循环

php - proc_open 不在简单的 C 程序上写入 STDIN

python - 比较两个长列表并在尽可能短的时间内返回索引

python - 检测和比较两个图像之间的形状