当前位置: 首页 > news >正文

C++性能测试工具——Vtune等的介绍

一、介绍

我们在前面的相关文章中对C++性能的测试和分析工具(见“C++性能测试工具gprof和gperftools基础”等)有一个初步的了解和应用,其实类似的相关工具还有不少。为了进一步的让开发者们掌握更多的相关性能测试分析相关的方法,对另外几个工具进行介绍。

二、几个性能工具

在一些大型公司或者专用平台,针对具体的场景下,会有针对性的性能测试和分析工具,在Intel平台下有Intel Vtune,在AMD平台上有AMD CodeAnalyst,这两个工具都是架构级的分析,基本都是跨平台的。当然,可能跨得并不完全,但在Windows/Linux上没有什么问题。这两个工具都比较专业化,应用起来也相对要求也要高一些。
另外,在使用Valgrind工具时,其中的Callgrind提供了程序的调用图分析,这个对于复杂调用中的性能分析有着巨大的帮助。不过它不支持跨平台应用,只能在类Linux/Unix系统上使用。
Oprofile被认为是Linux平台上最好的性能监测工具,它能够根据CPU提供的接口进行采样,从代码层次上对性能进行监测和分析。它支持两种采样(sampling)方式:基于事件的采样(eventbased)和基于时间的采样(timebased)。需要注意的是,在虚拟机中,它的应用是受限的,不建议使用。
Sysprof是一个开源的 Linux 系统性能分析工具,侧重于帮助开发者分析应用程序的 CPU、内存、I/O 等资源的使用情况,从而确定性能瓶颈。
这些工具基本都支持多线程和远程的分析调用,但Callgrind及Sysprof两个都不支持远程的分析使用。

三、对比

上面对Vtune等性能分析工具进行了介绍和说明,为了能够更好的让大家掌握这几个工具的特点,对几个工具进行对比:
在这里插入图片描述

四、总结

在初步了解这些性能分析工具后,在后面会针对具体的工具安装和应用进行举例说明。工欲善其事,必先利其器。一个优秀的开发者,除了能够熟练掌握开发的相关技能,更应该掌握各种开发相关的工具,特别是在性能分析方面的工具,更是重中之重。

相关文章:

  • Spark,数据清洗
  • JavaScript 时间转换:从 HH:mm:ss 到十进制小时及反向转换
  • Maven使用详解:Maven的概述(二)
  • 如何选择高性价比的 1T 服务器租用服务​
  • Day29 -JS开发02 -两个实例:dom树(存在dom-xss) 加密及基础的js逆向(明文加密)
  • 机器学习与人工智能:NLP分词与文本相似度分析
  • 深入解析VPN技术原理:安全网络的护航者
  • 学习alpha
  • 12 web 自动化之基于关键字+数据驱动-反射自动化框架搭建
  • 在 Neo4j 中实现向量化存储:从文本到高效语义搜索
  • asp.net IHttpHandler 对分块传输编码的支持,IIs web服务器后端技术
  • ROS2学习(5)------ROS2 功能包介绍
  • Neo4j 图书馆借阅系统知识图谱设计
  • 【学习笔记】因果推理导论第1课
  • NDK19无法在AppleM芯片运行解决方案
  • 用 Rust 带你了解 TCP 和 UDP
  • 协议不兼容?Profinet转Modbus TCP网关让恒压供水系统通信0障碍
  • pytorch 14.3 Batch Normalization综合调参实践
  • 【数据结构】手撕AVL树(万字详解)
  • JAVA:Spring Boot 集成 RDF4J 实现欺诈检测的技术指南
  • 海昏侯博物馆展览上新,“西汉帝陵文化展”将持续展出3个月
  • 第一集|好饭不怕晚,折腰若如初见
  • 通用汽车回应进口车业务调整传闻:因经济形势变化重组,致力于在中国持续发展
  • 李公明︱一周书记:当前科学观中的盲点、危机与……人类命运
  • “中国神湖”加快放大资源规模!3亿美元换海外年产380万吨钾盐项目
  • 《歌手2025》公布首发阵容,第一期就要淘汰一人