【C#】并行编程实战:使用 Visual Studio 调试任务

        并行编程可以提高应用程序的性能,但是调试起来会更困难,这一点在之前的章节中我们已经有了很直观的感受。对于程序而言,保证程序的正确性和保证性能同样重要。

        本章将介绍可以在 Visual Studio 中的调试工具(包括 Thread 窗口、Tasks 窗口和 Concurrency Visulizer)调试线程。实际上在我看来使用 VS 进行调试并不理想,对于我们 Unity 程序来说有更好的方式。但是技多不压身,了解一下也是可以的。

          本教程学习工程:魔术师Dix / HandsOnParallelProgramming · GitCode


1、使用 Visual Sutdio 2019 2022 进行调试

        书上用的是 VS2019,但是都什么年代了,还在使用 2019 ? 我们直接上 2022 !

        线程调试窗口打开方式如下:

         调试 -> 窗口 -> 线程。

        之后我们打上断点就能调试了,线程窗口如下所示:

         PS:在 VS2022 中对 Untiy 打断点的方式为:调试 -> 附加 Unity 调试程序。

2、如何调试线程

        当使用多个线程时,找出在特定时间执行的是哪个线程就变得很重要,这使得我们能解决跨线程问题以及竞争状况。

         线程打开如图所示,也可以显示断点。最左边的小旗子,表示标记线程。可以选择左边小旗子标记,然后就能选择只显示标记的线程。如果线程特别多的情况,这会非常方便。

         还有一个小窗口,在 调试 -> 窗口 -> 并行堆栈窗口,可以查到并行堆栈之类。

        但是我实际用起来感觉作用不大,因为我最需要的2个功能:如何查看多线程的错误?如何查看多线程利用率?这两个窗口都无法显示出来,而且是只有断点的情况才会生效。

3、并发可视化器 Concurrency Visualizer

        书上提到了一个工具 Concurrency Visualizer ,我们可以直接在拓展中搜索,并安装到 VS 2022 上:

         安装没有什么好说的,安装完了我们在 分析 -> 并发可视化工具中使用。

         选择附加到进程,并找到我们的程序即可。之后系统会自动收集数据,然后我们运行 Unity 。当我们不需要测试时,停止收集,就能得到一个可视化的面板,表示性能:

         我们可以从里面看到各种参数、线程的消耗等。

        相关介绍可以看篇文档:

利用VisualStudio2010中的ConcurrencyVisualizer优化性能 - 百度文库https://wenku.baidu.com/view/840f5972ab956bec0975f46527d3240c8547a176.html?_wkts_=1690171463334&bdQuery=Concurrency+Visualizer

        我的评价:没用,不如 Unity 的 Profile 。


4、本章小节

        本章简单介绍了几个调试工具和窗口,但是我感觉都没啥大用。如果只是为了看堆栈,普通的断点也能调试进去。如果看性能的话,显然 Unity 的 Profile 是更好的选择。至于如何使用 Unity Profile 看多线程的性能,这个我们后面再介绍。        

        总之都是非常鸡肋。

        本教程学习工程:魔术师Dix / HandsOnParallelProgramming · GitCode

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面我将介绍一些 VS2010 C++ 项目实战的经验和技巧。 1. 创建一个空项目(Empty Project) 在创建 VS2010 C++ 项目时,我们可以选择创建一个空项目。这种项目类型仅包含项目文件,而没有预定义的源代码文件或资源文件。这种项目类型通常用于创建自己的库或框架。 2. 使用多项目解决方案(Multiple Project Solution) 如果您正在开发一个大型系统,那么您可能需要使用多个项目来组织代码。在这种情况下,您可以使用多项目解决方案。您可以将相关的项目组合在一起,并且可以在项目之间共享代码和资源。 3. 使用预编译头文件(Precompiled Header) 预编译头文件可以加快编译速度,因为它们将常用的头文件预先编译成二进制格式,以便在编译其他源代码文件时快速加载。您可以使用预编译头文件来加快项目的编译速度。 4. 使用代码分析工具(Code Analysis) 代码分析工具可以帮助您发现代码中的潜在问题,如内存泄漏、空指针引用等。VS2010 C++ 包含一个内置的代码分析工具,您可以使用它来检查您的代码。 5. 使用代码重构工具(Code Refactoring) 代码重构工具可以帮助您重新组织代码,使其更易于理解和维护。VS2010 C++ 包含一个内置的代码重构工具,您可以使用它来重构您的代码。 6. 使用版本控制系统(Version Control System) 版本控制系统可以帮助您跟踪代码的更改历史,并允许多个开发人员同时协作开发同一个项目。VS2010 C++ 支持多种版本控制系统,如 Git、Subversion 等。 希望这些经验和技巧可以帮助您更好地开发 VS2010 C++ 项目。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值