CPU性能分析
一、perf工具介绍
二、gperftools 性能分析
本篇文章介绍采用gperftools 工具集中的CPU profiler 来对C++程序进行性能分析。gperftools 是 Google开源的一款包含 多线程下高性能内存分配器 tcmalloc
实现和 其他性能分析工具的集合。用户可以单独使用其中的某项工具,也可以全部使用。
GPU性能分析
一、Nsight System
Nsight Systems is a statistical sampling profiler with tracing features. 官方解释是1个统计采样器,带了追踪的特性。两个方面讲:
- sampling 是硬件层面的实现(hardware event overflow) ,利用了Linux OS’ perf subsystem,跟Linux perf工具用的一样,周期性地停止目标程序(比如每100w个cycle),收集每个线程的 CPU Instruction Pointers(IP, 指令指针),便于了解某一时刻系统的执行状态。
- tracing 是精确地采集各个活动开始和结束的时间,便于了解系统各个环节的时间开销和运转情况。
它是个系统级的性能分析工具,在服务器端用nsys-cli 命令行采集完成后,能通过GUI可视化地展示 程序各环节运行耗时,包括CPU 和 各个系列的GPU。