猿问

std :: function的性能开销是多少?

std :: function的性能开销是多少?

我在论坛上听到使用std::function<>原因性能下降。这是真的吗?如果是真的,这是一个很大的性能下降?



千万里不及你
浏览 1072回答 3
3回答

慕后森

您可以从boost的参考资料中找到信息:通过boost :: function调用会产生多少开销?和表现这并不能确定“是或否”来提升功能。考虑到程序的要求,性能下降可能是可以接受的。通常,程序的某些部分对性能不重要。即使这样,也可以接受。这只是您可以确定的内容。对于标准库版本,标准仅定义了一个接口。完全由个人实现来使其工作。我想将使用类似于boost函数的实现。

幕布斯6054654

如果您在不绑定任何参数(不分配堆空间)的情况下传递函数,这将强烈依赖。还取决于其他因素,但这是主要因素。确实,你需要比较一些东西,你不能简单地说它“减少了开销”,而不是完全不使用它,你需要将它与使用另一种传递函数的方法进行比较。如果您可以完全免除使用它,那么从一开始就不需要它
随时随地看视频慕课网APP
我要回答