关于虚函数的效率问题的一点点探讨
来源:互联网 发布:java整形转换成字符串 编辑:程序博客网 时间:2024/06/06 02:34
起因,看tamarian的代码,其中有一段注释:
/** * ScriptBufferImpl is the base class for script buffer * implementations. * * This is a pure base class which must be subclassed to be used. * Its methods are not virtual for performance reasons. * For default script buffer behavior, use BasicScriptBufferImpl. */
其中说到这里的ScriptBufferImple是一个只用来被继承的纯虚函数,但是为了效率问题,它的实现没有使用virtual。
我就产生了疑问,virtual确实会有一定的开销,因为如果是virtual函数,那么所有的调用就需要从基类的vtable中去寻找,从而带来一些性能损失。
接着,google了一下, 发现c++/C#及java的阵营做法不一样,参见http://stackoverflow.com/questions/814934/why-c-sharp-implements-methods-as-non-virtual-by-default
里面讨论两者的出发点。 发现JAVA由于有VM的存在,可以动态的做一些优化,从而对于virtual的效率没有那么care。
- 关于虚函数的效率问题的一点点探讨
- 虚函数的效率问题
- 关于memory的三个函数,再说一点点
- 关于getline函数的一点点心得
- 关于毛刺问题的探讨
- 关于某个问题的探讨
- 关于创业的一点点
- 关于Collection的一点点
- 关于构造函数析构函数和异常的一点点
- 关于INSERT的效率问题
- 关于webservice效率的问题
- 关于迭代器的效率问题
- 关于频谱效率的问题
- 关于python的效率问题
- 关于Exosip的效率问题
- 关于 循环 效率的问题
- strtr函数的效率问题
- ++i,i++的效率探讨
- Session那些事(二)
- linux笔试题参考答案(1)
- pcie调试笔记6月6日
- asp.net jQuery日历插件fullcalendar详解
- hook api
- 关于虚函数的效率问题的一点点探讨
- poj 1484 Blowing Fuses
- linux sed命令 批量替换文件内容的方法
- js中替换字符串
- hibernate 中文乱码处理
- VC++网络安全编程范例(1)--数字证书有效期验证
- SELinux 的启动、关闭与查看
- android platform 离线安装网址
- 批量复制文件到指定目录并执行.bat文件(2012.06.06)