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++ 项目

如何把程序从windows平台移植到linux平台

VScode 编译调试运行C++ 程序的 配置文件设置(LINUX环境Windows10环境)自我总结

关于windows下C++程序移植到linux下的一些头文件对应问题

在Windows上使用VSCode远程链接到Linux上开发并调试C++程序