Bla*_*aws 2 c++ linker templates multiple-instances instance
我已经用C++编程了很长一段时间,我很喜欢使用模板.由于我涉足嵌入式编程,我最近一直想知道的是,人们应该期望链接器在模板参数不同的模板实例中对代码重复行为.
对于具有相同参数的相同模板的多个实例,众所周知,在链接时间内将其优化掉(另请参阅:C++链接模板实例如何)
但是在我的情况下,我很感兴趣链接器是否会识别使用不同参数实例化的两个模板之间的任何重复代码.由于它们是不同的类型,我认为它们不会自动崩溃.然而,由于它们可能具有一些不依赖于模板参数的函数,因此在两个类之间是相同的,因此可以假设链接器可以优化这些函数并因此节省空间.
在这种情况下,预期的行为是什么?
金链接器就是这么做的.
我们发现大型C++应用程序和共享库往往有许多函数,其代码与另一个函数相同.理论上可以通过将这些相同的函数合并到单个副本中来消除多达10%的代码.这种优化的相同代码折叠(ICF)已经在黄金链接器中实现.在链接时,ICF检测具有相同目标代码的函数并将它们合并为单个副本.
| 归档时间: |
|
| 查看次数: |
478 次 |
| 最近记录: |