揭秘英特尔® Parallel Amplifier

英特尔® Parallel Amplifier 的三种分析类型旨在让您以不同角度深入了解程序性能。每个层面的分析都收集了相应的信息。具体说明如下。

热点

第一类分析,即热点 (Hotspots),是最初级的分析。运行它所需时间与正常运行应用程序(无英特尔® Parallel Amplifier)的时间相同。在执行应用程序时,英特尔 Parallel Amplifier 的数据收集器将定期采样。每次采样时,收集器与操作系统协作使程序中断,同时采集数据。它记录执行应用程序的各个 CPU 核心的指令指针 (IP) 和调用栈(保存为 O/S 数据结构的一部分)。一旦应用程序执行完毕,英特尔 Parallel Amplifier 获取全部 IP 采样,并使用它们计算出每个函数的运行时间,再用所有调用栈采样为整个程序创建一棵调用树。为创建热点列表和调用树,英特尔 Parallel Amplifier 还会使用存储在程序调试数据库(.pdb 文件)中的程序数据和指令空间的信息。

并发性

第二类分析,即并发性 (Concurrency),其工作方式与热点相似,但收集信息更多。它也记录应用程序各线程在各种状态下的数据,如运行、准备就绪和阻塞。一旦集齐所有采样,英特尔 Parallel Amplifier 将对数据进行分析,以确定应用程序各线程处于活动状态的时间的百分比。这叫做并行级别 (Concurrency Level),已分解至每个函数。理想情况下,应用程序的并行级别应该与系统的处理器数目一致,即英特尔 Parallel Amplifier 所谓的完全利用 (Fully Utilized)

锁定和等待

最后一类分析称为锁定和等待 (Locks and Waits),是最消耗处理器时间的一种分析。应用程序在被基于锁定和等待的分析时可能需要较长的运行时间,这就是消耗处理器时间的原因。除收集上述数据之外,英特尔 Parallel Amplifier 还将向已编译的程序添加指令。这些指令将被置于程序中使用线程和同步 API 调用的位置,目的是测量线程处于非活跃状态时的等待时间。此计时信息与 .pdb 文件中的符号信息相结合,即可创建出应用程序等待位置和等待对象的图表。锁和其他可能造成线程等待的结构被称作同步对象 (Synchronization Objects)。运行此分析后,英特尔 Parallel Amplifier 将显示一张同步对象列表,包括各自等待时间以及在等待期间应用程序的并发性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值