c – dynamic_cast <>有多快

…大概与典型的std :: string :: operator ==()相比较?我在下面给出一些更多的细节,我不知道他们是否有任何相关性.用复杂度或近似值来回答就够了.谢谢!

详细信息:我将在列表中的for循环中使用它来查找一些特定的实例.我估计我的平均继承水平为3.5课.我正在寻找的一个一个父类,一个祖父母和两个“接口”,即抽象类与一个虚拟void abc()= 0的几个.

没有一个我将要寻找的子类.

解决方法

它在很大程度上取决于您的编译器,您的特定类层次结构,硬件,各种因素.你真的需要在你的特定应用程序中直接测量它.您可以使用 rdtsc或(在Windows) QueryPerformanceCounter上获得相对较高精度的计时器.确保有几千个动态播放的时间循环或滑动,因为即使 QPC只有一个1/4分辨率.

在我们的应用程序中,dynamic_cast<>成本约1微秒,字符串比较约3ns /字符.

dynamic_cast<>和stricmp()都在我们的配置文件的顶部,这意味着使用它们的性能成本是重要的. (坦率地说,在我们的工作中,让这些功能配置文件上这么高,这是不能接受的,我不得不去重写一大堆别的使用它们的代码.)

相关文章

对象的传值与返回说起函数,就不免要谈谈函数的参数和返回值...
从实现装饰者模式中思考C++指针和引用的选择最近在看...
关于vtordisp知多少?我相信不少人看到这篇文章,多半是来自...
那些陌生的C++关键字学过程序语言的人相信对关键字并...
命令行下的树形打印最近在处理代码分析问题时,需要将代码的...
虚函数与虚继承寻踪封装、继承、多态是面向对象语言的三大特...