Visual Studio C++ 中增量链接的性能低下;
我有一个大型二进制文件,它由许多静态库和独立的 cpp 文件构建。它被配置为使用增量链接,所有优化都被 /Od
禁用 - 它是调试版本。
我注意到,如果我更改任何独立的 cpp 文件,则增量链接运行速度很快 - 1 分钟。但是,如果我更改任何静态库中的任何 cpp,那么它会运行很长时间 - 10 分钟,与普通链接的时间相同。在这种情况下,我没有从增量链接中获得任何好处。有可能加快速度吗?我用的是VS2005。
I have a large binary which is built of many static libs and standalone cpp files. It is configured to use incremental linking, all optimizations are disabled by /Od
- it is debug build.
I noticed that if I change any standalone cpp file then incremental linking runs fast - 1 min. But if I change any cpp in any static lib then it runs long - 10 min, the same time as ordinary linking. In this case I gain no benefit from incremental linking. Is it possible to speedup it? I use VS2005.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
设置“使用库依赖项输入”在项目的链接器常规属性页中。这将从依赖项 .lib 而不是 .lib 链接各个 .obj 文件,这可能会产生一些不同的副作用。
Set "Use Library Dependency Inputs" in the Linker General property page for your project. That will link the individual .obj files from the dependency .lib instead of the .lib, which may have some different side effects.
我会给你一个不同类型的答案。硬件。
你的开发环境是什么?是否有办法获得更多 RAM 或将您的项目放到固态硬盘上?我发现使用 SSD 将我的工作项目的链接时间加快了一个数量级。对编译时间有一点帮助,但链接很大。获得更快的系统当然也有帮助。
I going to give you a different type of answer. Hardware.
What is your development environment? Is there anyway to get more RAM or to put your project onto an Solid State Drive? I found that using a SSD sped up my link times by an order of magnitude on my work projects. Helped a little for compile times, but the linking was huge. Getting a faster system of course also helped.
如果我理解正确的话(在使用 Visual Stuio 几年之后),增量链接功能不适用于作为静态库一部分的目标文件。
解决此问题的一种方法是重构您的解决方案,以便您的应用程序项目包含所有源文件。
If I understand correctly (after using Visual Stuio for some years), the incremental linking feature does not work for object files that is part of static libraries.
One way to solve this is to restructure your solution so that your application project contains all source files.