C ++库中函数数量的影响

时间:2014-09-29 06:48:33

标签: c++

假设现在有两个C ++库可用:一个库具有程序所需的所有功能(一个将调用该库的C ++应用程序),另一个库不仅具有所需的必要功能由程序,但也有其他功能,不会被程序使用。我们假设对于两个库中的公共函数,它们以相同的方式实现。我的问题是:当程序使用库执行某个任务时,库对程序性能的影响是什么?

我之所以提出这个问题,是因为在开发c ++库时,我经常编写一些额外的函数,这些函数可能不会被库的用户调用,但对于调试很重要。当库完成时,我有两个选择:一个是保留这些辅助功能,另一个是删除它们或使用其他保留它们的策略(例如,定义MACRO来禁用这些功能)。如果保持这些辅助功能不会降低性能,我想保留它们。

2 个答案:

答案 0 :(得分:2)

其他一切都是一样的,没有性能差异。

此外,如果库是静态库,则链接器将不包含未使用的函数,并且可执行文件具有相同的大小。

答案 1 :(得分:1)

好吧,如果你已经编写了一个静态库,我猜你有。然后,它将创建的唯一区别是静态库功能将成为您可执行文件的一部分,无论您是否使用它。

我认为它不会在速度方面伤害到你,但是它会占用更多的空间,因为你的可执行文件会创建一个lib副本。