全局变量、局部变量以及对象的属性,哪个访问的快,哪个访问的慢?如果在类的成员函数里访问类的属性是否与访问普通变量的速度相同?

解决方案 »

  1.   

    全局变量最快吧然后 那种多重调用获取的变量应该最慢对象A-->对象B-->对象C-->变量个人愚见  楼下补充
      

  2.   

    全局变量是最快,局部变量(通过栈访问)与访问类的成员应该差别读大,都要运算一下得地址,没有注意是ecx+数快还是ebp-数快
      

  3.   

    Winner25:
    你是想说“局部变量(通过栈访问)与访问类的成员应该差别 不 大”吧?
    如果是extern声明的变量,是否与非extern的全局变量速度相同呢?
      

  4.   

    我看到一片讲vb的帖子说,vb里访问成员变量比普通变量慢20倍。不知道vc里是不是有类似问题?
      

  5.   

    对,手误,这个与extern没有关系吧,他只是个声明的修饰符,访问是都是直接按地址访问.
      

  6.   

    调用那点开销对现在的CPU来说根本算不了什么的,关键是 堆内存和栈内存的快慢问题,我倒真不知道那种快
      

  7.   

    堆是相当的慢,主要是分配慢,释放慢,倒是访问还是挺快的,比栈要快,毕竟访问栈,得用ebp减个数得地址去访问楼上的也挺活跃啊,在那座城市
    不过你说的调用,首先肯定就有压栈,出栈,哈哈,速度就是慢下来了
      

  8.   

    呵呵,结论有了啊,蒋老大说的要算偏移是指,int * i_ptr=new int[4];对i_ptr[x]访问时,可能要用i_ptr+x去访问数据!哪个是另外的情况,而栈访问,一般的编器器都是处理为 ebp-x去访问对于任何一个局部变量