boost :: function运行时性能

Kor*_*icz 7 c++ boost boost-function

我正在为动态加载的库实现一个独立于平台的包装器.当然,当我从库中加载函数时,我需要将它们存储为指针以供将来使用.我想过使用boost :: function来代替普通的函数指针.当然,这会增加编译时间,但这不是我所害怕的.而是:

调用存储函数时boost :: function引入的开销是多少?有吗?它有多大?

我想在不时调用这些函数时我不会有太大的开销,但是,那些被调用的函数怎么样?(极端的例子,glVertex在加载的GL库上).它对性能有多大影响?

源头潜水提升没有多少回答:>.

此外,如果它依赖于编译器,我主要对GCC和MSVC感兴趣.

Nic*_*tin 5

如Boost 文档中所述,boost::function在大多数情况下,通过函数指针调用一次调用会产生一次调用.换句话说,如果你无论如何都要使用函数指针,它就是一个版本,你可以免费获得一堆增强功能.