本文讨论启用混合模式调试。这允许托管应用程序调用本机 DLL,或本机应用程序调用托管 DLL。
为我的解决方案中的所有项目启用此功能是否会产生负面影响?例如,这是否会对性能、构建时间或构建期间访问磁盘的文件数量等产生负面影响?
上述文章没有讨论这个问题。
构建时间:
独立于混合模式方面,常见调试配置的构建时间问题对于您的本机 dll/部分的 PDB 变得非常大的情况通常是合理的(但与常见的发布配置相比通常相对无关)。毫无疑问,这取决于许多方面(链接器配置、硬件、并行链接?)。专注于混合模式,不应该有任何进一步的相关影响原因,因为托管部分无论如何都会提供 PDB 相应的信息。
运行:
取决于很多方面。但是,是的,总的来说,至少与纯本机调试相比,您会在这里观察到(负面)影响,重点是性能和内存使用(!)。例如,至少以前的 MS-Debuggers(在 VS 2017 之前)在处理混合模式下的大型调试会话时存在几个相当严重的问题。一个常见的 - 对于初学者来说有时不容易看到 - 这里的性能下降器同样是托管和本机部分上的条件断点 - 迫使调试器非常频繁地切换其操作上下文(条件断点与“经典”断点具有几乎相同的性能影响) .