zoukankan      html  css  js  c++  java
  • 动态绑定的开销

    因为静态绑定的函数,在编译时已明确了所要调用的函数,所要运行时没有决定调用正确函数的开销

    动态绑定的开销:

    C++中都保存了一个类方法的特定表,并在查找正确函数时使用该表。

    需要注意的是:找到正确的函数并不涉及链表或表进行任何查找,这是瞬间直接地查找过程。

    表中储存了所有方法的地址,调用动态绑定的函数时,这些方法由接受消息的对象来定位。

    这通常只需要几条汇编语言指令。

    接下来,从表中选择正确函数的地址(使用编译时计算的偏移量)。

    最后,用刚找到的地址来调用函数。

    所有的这些步骤都只需一些汇编语言指令。

    无论类(类层次)多么复杂,查找方法的开销固定不变。

    很明显,每次调用动态绑定的函数都有一些额外开销。但是,在大多数情况下,相关的开销还不至于高到要完全避免使用这样的函数。

  • 相关阅读:
    51nod 1138 【数学-等差数列】
    hdoj3665【简单DFS】
    hdoj3664【DP】
    51nod1270 【dp】
    51nod 1069【思维】
    关于一些数学符号和概率的阐述;
    51nod 1428【贪心】
    51nod 1133【贪心】
    51nod1127【尺取】
    51nod1126【矩阵快速幂】
  • 原文地址:https://www.cnblogs.com/zhengzhe/p/6586977.html
Copyright © 2011-2022 走看看