This article讨论了启用混合模式调试。这允许托管应用程序调用本地DLL,或者本地应用程序调用托管DLL。
为我的解决方案中的所有项目启用此功能是否会带来负面影响?例如,这是否会对性能,构建时间或构建过程中命中磁盘的文件数量产生负面影响?
上述文章不讨论此。

最佳答案

建立时间:
独立于混合模式方面,对于本机dll /部分的PDB变得非常庞大的情况(对于通用Debug配置而言,与一般发行版配置相对而言无关紧要),通常对于常见Debug配置的构建时间问题通常是合理的。毫无疑问,这取决于许多方面(链接器配置,硬件,并行链接?)。着眼于混合模式,不应再有任何其他相关的影响原因,因为被管理部件始终会为PDB提供相应的信息。
运行时:
取决于很多方面。但是,是的,一般而言,与纯本机调试相比,您至少会在这里观察到(负面)影响,重点是性能和内存使用率(!)。例如,至少以前的MS-Debugger(在VS 2017之前)在以混合模式处理较大的调试 session 时遇到几个非常严重的问题。一个常见的-对于初学者来说有时不容易看到-这里的性能下降同样是托管部分和本机部分上的条件断点-强制调试器非常频繁地切换其操作上下文(条件断点与“经典”断点的性能影响几乎相同) 。

09-04 16:11