我们正在获得非常缓慢的编译时间,这可能需要超过20分钟的双核心2GHz,2G 内存机器。
这很大程度上是由于我们的解决方案的规模已经增长到70多个项目,以及 VSS 本身是一个瓶颈,当你有很多文件。(不幸的是,交换 VSS 不是一个选项,所以我不希望这种情况演变成 VSS 狂欢)
我们正在考虑合并项目。我们也正在寻找多种解决方案,为应用程序的每个元素提供更大的关注点分离和更快的编译时间。这我可以看到将成为一个 DLL 地狱,因为我们试图保持同步的东西。
我很想知道其他团队是如何处理这个扩展问题的,当你的代码达到一个临界值时,你会怎么做,你会浪费大半天的时间来观察状态栏传递编译消息。
更新 我没有提到这是一个 C # 解决方案。感谢所有的 C + + 建议,但是我已经好几年没有担心过页眉问题了。
编辑:
到目前为止有帮助的好建议(不是说下面没有其他好建议,只是有帮助的建议)
仍然没有通过编译进行 Rip-snort,但是每一个位都有所帮助。
Orion 确实在评论中提到了仿制药也可能有用。从我的测试来看,性能确实受到了很小的影响,但是还没有高到可以确定的程度——由于磁盘活动,编译时间可能不一致。由于时间限制,我的测试没有包含在活动系统中出现的那么多泛型,或者那么多代码,因此可能会累积。我不会避免在应该使用泛型的地方使用泛型,只是为了编译时的性能
变通
我们正在测试在新的解决方案中构建应用程序的新区域的实践,根据需要导入最新的 dll,当我们满意时,它们将它们集成到更大的解决方案中。
我们也可以通过创建临时解决方案来对现有代码进行同样的处理,这些临时解决方案只是封装了我们需要处理的区域,并在重新集成代码后将其丢弃。我们需要权衡重新集成这些代码所需要的时间和我们没有 Rip Van Winkle 那样在开发过程中快速重新编译的经验所获得的时间。