如今制造商们广泛提供了多核心处理器,新处理器中的单线程性能相对而言可能就显得平淡无奇了。那就意味着,对软件开发人员来说,通过更好地利用并行机制来提高应用程序性能的压力就更大了。
并行编程是一项很有挑战性的工作,其原因很多,但我在本文中只想将重点放在并行应用程序的性能方面。多线程应用程序不止容易成为顺序实现低效率进行(如低效的算法、低速的缓存行为、过多的 I/O)的常见原因,而且还可能具有并行性能 Bug。并行性能和可伸缩性可能受到负载不平衡、同步开销过大、无意的序列化或线程迁移限制。
过去,要了解这样的性能瓶颈,需要专家级开发人员进行大量的检测和分析。即使是程序员中的佼佼者,性能优化也是一个枯燥而耗时的过程。
这种情况应该得到改善了。Visual Studio 2010 中包含了一个新的分析工具:Concurrency Visualizer,它可大大减轻并行性能分析工作的负担。此外,Concurrency Visualizer 还能帮助开发人员分析其顺序应用程序,以发现并行执行这些应用程序的可能性。在本文中,我将概括介绍 Visual Studio 2010 中 Concurrency Visualizer 的功能,并给出一些实践上的使用指导。
CPU 利用率
Concurrency Visualizer 中包含几个可视化和报告工具。有三个主要视图:分别是“CPU 利用率”、“线程”和“核心”视图。
图 1 中显示的“CPU 利用率”视图是开始使用 Concurrency Visualizer 的位置。X 轴显示从跟踪开始时起,到应用程序活动结束或跟踪结束这两个时刻中的较早时刻止,所经过的时间长度。Y 轴显示了系统中逻辑处理器核心的数量。
图 1 “CPU 利用率”视图
时间: 2024-10-29 19:51:03