对象的性能影响

0 c c++ performance

我是一名初学程序员,具有一些c和c ++编程经验.我被大学指派为物理模拟器,所以你可能会想到有很强调性能.

我的问题如下:

  1. 实例数据成员通过指针访问的汇编指令有多少转换为(例如vector-> x)?
  2. 是不是说另一种方法,你只需通过说char*(在变量x的相同内存位置)访问内存,或者它是否相同?
  3. 如果我使用一个对象访问该内存位置或者我只是访问它,那么对编译器性能有很大的影响吗?
  4. 关于这个问题的另一个问题是访问堆内存是否比堆栈内存访问更快?

das*_*ght 7

C++是一种编译语言.通过指针访问存储器位置是相同的,无论是指向对象的指针还是指向char*它的指针- 在任何一种情况下它都是一条指令.有几个地方C++增加了开销,但它总是给你带来一些灵活性.例如,调用虚函数需要额外的间接级别.但是,如果要使用函数指针模拟虚函数,则无论如何都需要相同的间接,或者如果要使用s switchifs 序列模拟它,则需要花费相当数量的CPU周期.

通常,在知道要优化的代码部分之前,不应该开始优化.通常,只有一小部分代码负责程序使用的大部分CPU时间.在分析代码之前,您不知道要优化哪个部分.几乎普遍它是程序员的代码,而不是C++的语言特性,它负责减速.确切知道的唯一方法是剖析.

  • +1我使用C++编写游戏,因此我经常遇到有关性能的问题.直到今天,由于C++,我还没有直接遇到性能问题.每次都是因为它的使用方式.你无法击败更好的逻辑. (4认同)