百科问答小站 logo
百科问答小站 font logo



c++ 中 结构体中的变量读写速度为什么比普通变量快? 第1页

  

user avatar   yao-dong-27 网友的相关建议: 
      

两端代码基本上一样的,绝大多数运行开销都在 rand和printf上,而不是变量赋值。

第一段运行后,大部分代码指令都进入了CPU的指令缓存,导致第二段执行变快率(猜测)

验证也很简单,把两段代码换个顺序再试试看。


user avatar   haozhi-yang-41 网友的相关建议: 
      

先给你个结论:你那两种写法,稍微正常点的编译器开了优化,都会生成一样的代码的。


你的测试代码的问题在于:

1:循环体内一句赋值再来一句printf,本质上测的是printf的速度。

2:如果不加那句printf,你的循环应该会直接被优化掉。

3:这种那么简单的代码没必要跑来测(也很难测得准)。最好的办法是反汇编之后直接看生成的指令。




  

相关话题

  如何向完全不懂编程的小伙伴解释「程序写死」? 
  C++ 允许「我们都是人,所以我可以把你私有的眼睛借来随便玩,再还给你」,这难道是一种设计上的妥协? 
  C++为什么要弄出虚表这个东西? 
  如何让停留在语法层面的 C++,变成实际工程中的 C++? 
  C++异常处理写的代码太丑怎么办? 
  C++ 实现接口与实现分离后,文件变得更多了,到底有什么好处? 
  把 string 当 enum 用,有性能损失吗? 
  做32位/64位跨版本编程,有什么需要注意的么? 
  对C++的匿名函数应具有怎样的态度? 
  p是char类型指针,p[1]不是指向p[0]的下一个字节吗?为什么会到0x11? 

前一个讨论
有没有不那么恶心的WPS?
下一个讨论
经过此次疫情之后,还会有中国人想移民国外吗?





© 2025-02-10 - tinynew.org. All Rights Reserved.
© 2025-02-10 - tinynew.org. 保留所有权利