c++ Windows 调试性能与 linux 相比非常慢
Posted
技术标签:
【中文标题】c++ Windows 调试性能与 linux 相比非常慢【英文标题】:c++ Windows debug performance is very slow vs linux 【发布时间】:2020-04-30 11:29:41 【问题描述】:我有一个 Cmake OpenCV 项目。如果我在调试配置中在 Windows 下执行相同的项目,性能非常糟糕,我放置了零断点。在发布方式中,我获得了与 Linux 相同的性能。
为什么在 Linux 上的性能比在 Windows 上更好?我可以修复窗口的性能问题吗?
我在 Linux 上使用编译器 GCC,在 Windows 上使用 VS 编译器。在这两个操作系统上,我都使用 Clion 作为 IDE。
【问题讨论】:
什么叫“性能”?顺便说一句,在调试的窗口上,它用 0xCC (AFAIR) 填充所有分配的缓冲区可能会对你的算法产生巨大的影响。 【参考方案1】:未优化代码和优化代码之间的性能降低 10..100+ 的情况并不少见。
VC++ 在调试模式下比 GCC 做更多的检查,这使得调试更容易,但代码可能更慢。
一些可能的解决方案:
在调试模式下启用一些优化,例如/Ob1
禁用iterator debugging
禁用debug heap
使用 Release 模式且仅enable debugging in specific files
【讨论】:
以上是关于c++ Windows 调试性能与 linux 相比非常慢的主要内容,如果未能解决你的问题,请参考以下文章
Windows和Linux下排查C++软件异常的常用调试器与内存检测工具详细介绍
无法从 Visual Studio 启动 gdb 以在 Windows 上的 Linux 子系统中远程调试 Linux C++ 项目
VScode 编译调试运行C++ 程序的 配置文件设置(LINUX环境Windows10环境)自我总结