博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态绑定的开销
阅读量:5135 次
发布时间:2019-06-13

本文共 391 字,大约阅读时间需要 1 分钟。

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

 

动态绑定的开销:

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

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

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

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

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

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

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

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

 

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

转载于:https://www.cnblogs.com/zhengzhe/p/6586977.html

你可能感兴趣的文章
中期蒙混过关,后期要早点起步4.13-4.19
查看>>
redisson笔记
查看>>
c语言运算优先级与结合方向的问题
查看>>
com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "FileSize"
查看>>
html常用标签总结
查看>>
VMware ESXi 虚拟机硬盘格式:精简置备、厚置备延迟置零、厚置备置零
查看>>
洛谷 P2764(最小路径覆盖=节点数-最大匹配)
查看>>
iphone safari不支持position fixed的解决办法
查看>>
Mysql err 1055
查看>>
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器 (转载)
查看>>
Python-装饰器
查看>>
dsu + lca
查看>>
软工网络15个人作业4——alpha阶段个人总结
查看>>
Linux基础-2文件及目录管理
查看>>
python re.sub
查看>>
《程序是怎样跑起来的》第二章
查看>>
TP5图片上传
查看>>
elasticsearch集群搭建
查看>>
【AtCoder】ARC090
查看>>
运用runtime与AOP实现oc中的kvo
查看>>