首页 > 其他分享 >使用perf工具分析rust代码运行性能

使用perf工具分析rust代码运行性能

时间:2022-12-22 10:34:01浏览次数:50  
标签:分析 perf 性能 生成 代码运行 rust 代码 Rust

前言

  perf是内置于Linux内核源码树中的系统性能剖析(profiling)工具,原理是在CPU的PMU register中Get/Set performance counters来获得诸如instructions executed,cache-missed suffered,branches mispredicted等信息。如果您使用的是其他操作系统,则可以使用其他工具(例如 valgrind)来分析 Rust 代码的性能。

正文
  perf 是一种常用的 Linux 性能分析工具,可用于分析 Rust 程序的性能。要使用 perf 分析 Rust 代码,您需要执行以下步骤: 

  1. 安装 perf:在终端中输入 sudo apt-get install linux-tools-common 即可安装 perf 工具。

  2. 编译 Rust 代码:使用 cargo build --release 编译 Rust 代码,以便生成可执行文件。

  3. 运行 perf:在终端中输入以下命令以使用 perf 分析 Rust 代码:

    1 perf record target/release/your-program
  4. 生成报告:输入以下命令以生成性能报告:
    1 perf report

  这会生成一份详细的报告,按函数名称排序,显示哪些函数消耗了最多时间。您可以使用此报告来了解哪些函数可能导致性能问题,并确定如何解决这些问题。

 注意,perf 仅适用于 Linux 系统,并且需要在发布模式(--release)下编译 Rust 代码,才能生成可执行文件。

例:下图是我是用perf分析一个应用程序所生成的报告图:

 

标签:分析,perf,性能,生成,代码运行,rust,代码,Rust
From: https://www.cnblogs.com/woju/p/16997837.html

相关文章

  • Rust异步编程
    概要就像其名字所暗示的一样,异步编程,就是非同步的编程。从高层来看,一个异步操作就是在后台执行的操作——程序不会等待异步操作结束,而是立即开始继续执行下一行代码。如......
  • rust模块化
    模块化关键字模块以文件为单位mod最重要的关键字,引用以后即可用use引入的防范可以使用缩写例子同级文件src/main.rspubmoddog;fnmain(){dog::sleep()......
  • rust开发环境配置
    环境manjarosudopacman-Srustuprustupdefaultstablecargoinstallrustfmtvscodeextinstallrust-lang.rust-analyzerextinstallserayuzgur.cratesexti......
  • Rust Read、BufRead、BufReader..
    今天写代码的时候有一个需求,我希望在某个代表路径的字符串不为空时,以这个路径来读取文件,得到一个File对象:ifxxxisnotemptystr{letfile=File::open(Path::ne......
  • 在rust语言中使用Cargo命令输出汇编文档
    首先来一波效果展示:(这是我使用方法二输出的文档,使用vscode工具查看的结果) 正文如下: 一、您可以使用Cargo的cargorustc命令直接向rustc发送参数:方法一:1cargorus......
  • Perf -- Linux下的系统性能调优工具
    Perf简介Perf是用来进行软件性能分析的工具。通过它,应用程序可以利用PMU,tracepoint和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题(pert......
  • Rust编程语言学习
    前言rust尝鲜https://www.rust-lang.org编程语言学习在bilibili搜索编程语言本地文档rustupdocquickstart创建文件➜rust-helloworldtouchmain.rs代码内......
  • openwrt开发使用-增加perf
    前言perf性能工具写的文章也有几篇了,这里就不多做介绍了,有兴趣的朋友可以看我之前的几篇文章:《perf性能分析工具使用分享》、《perf补充命令分享》。今天分享的内容是o......
  • Flutter和Rust如何优雅的交互
    前言​​文章的图片链接都是在github上,可能需要...你懂得;本文含有大量关键步骤配置图片,强烈建议在合适环境下阅读​​Flutter直接调用C层还是蛮有魅力,想想你练习C++,然后直接......
  • Rust介绍
    什么是Rust?Rust是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust在语法上和C++类似,但是设计者想要在保证性能的同......