【问题标题】:How to reduce linkage time for large project written in native Visual C++?如何减少用本机 Visual C++ 编写的大型项目的链接时间?
【发布时间】:2008-11-30 16:12:25
【问题描述】:

我正在处理大量用 Visual C++ 编写的源代码。目标是dll库。联动时间消耗几分钟。如何减少这个时间?

库依赖于相同解决方案中的其他 dll 和库。

可以做的第一件事是将源代码拆分为几个项目,但这是一种耗时且非常昂贵的方法。

可能还有一些其他方法可以在我的情况下使用。

编辑:我使用增量链接,虽然这大大减少了时间,但这对我来说还不够。 目标文件的大小没有问题,因为最烦人的是开发这样的代码库。每一个小修改都需要等我链接。

【问题讨论】:

    标签: c++ visual-studio visual-c++


    【解决方案1】:

    重构!!!将大 DLL 拆分为较小的模块,使用接口层执行此操作,当您将“巨大”DLL 拆分为较小的模块时创建架构,而不是获取前 5 个文件等。仔细映射 DLL 层次结构 0 级 DLL 是独立的,级别1 个 DLL 可能依赖于 1 个或多个级别 0,等等。

    这样做的努力会得到回报,假设只有 10 个开发人员每天只等待 6 分钟链接,10*6 == 1 小时 * 每周 5 天,这意味着您每周损失超过半天的开发时间,这应该足以证明中断功能开发以使您的鸭子井井有条。

    您还提到了库,如果您也有制作这些 DLL 的源代码,那么当您启用编辑并继续时,这将很快得到回报。

    【讨论】:

      【解决方案2】:

      如果您不使用增量链接,您应该研究一下。它基本上是在最终对象大小与链接性能之间进行交易。

      全局优化选项还将编译时间(即代码生成)从编译阶段转移到链接阶段 - 您可能会发现最好放弃它们,这样单个文件的编译速度会变慢,但链接会更快。

      【讨论】:

      • 谢谢,我用过这样的方法,我正在寻找其他方法,也可以使用。
      【解决方案3】:

      您可以尝试减少包含依赖项。 一些标头会触发大量代码添加到 .obj 文件中,即使其中没​​有真正使用。 此类标头的一些示例是和

      【讨论】:

        猜你喜欢
        • 2010-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        • 2018-01-29
        • 1970-01-01
        相关资源
        最近更新 更多