perf的安装与迁移

前言

   perf是性能优化很重要的工具之一,本篇博客就来看一下perf的安装以及遇到的问题。

   嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程,未来预计四个月将高强度更新本专栏,喜欢的可以关注本博主并订阅本专栏,一起讨论一起学习。现在关注就是老粉啦!

目录

  • 前言
  • 1. ubuntu下安装perf
  • 2. 迁移perf到设备中
  • 问题
  • 参考资料

1. ubuntu下安装perf

   ubuntu下安装perf就较为简单。

   首先打开终端,输入如下指令:

sudo apt install linux-tools-common

   此时如果输入perf -v 会出现提示,你需要再安装linux-tools-4.15.0-142-generic以及linux-cloud-tools-4.15.0-142-generic

在这里插入图片描述

   在终端继续输入如下指令:

sudo apt-get install linux-tools-4.15.0-142-generic
sudo apt-get install linux-cloud-tools-4.15.0-142-generic

   安装好后,输入perf -v 可以查看perf版本

在这里插入图片描述

2. 迁移perf到设备中

   如果没有linux版本可以去下载一下linux内核源码,网站为https://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/。

   也可以使用wget下载,比如下载4.1.15,就可以用如下指令:

wget http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/v5.x/linux-4.1.15.tar.gz

   下载完毕后,使用解压缩指令解压缩内核源码文件:

tar -zxvf linux-5.4.31.tar.gz

   进入perf目录:

cd linux-4.1.15/tools/perf/

   在进行make之前,需要安装一些perf源码的依赖:

apt install flex bison
apt install zlib1g zlib1g-dev
apt install libelf-dev
apt install elfutils
apt install systemtap-sdt-dev
apt install libssl-dev
apt install libunwind
apt install libdw-dev
apt install libcap-dev
apt install libzstd-dev
apt install binutils-dev
apt install libiberty-dev
apt install zlib-static
apt install libslang2-dev
apt install libunwind-dev
apt install libperl-dev
apt install libnuma-dev
apt install libbabeltrace
apt install libbabeltrace-dev
apt install libbabeltrace-ctf-dev
apt install python-dev-is-python3

   但是安装过程中本人有几个失败了,但不影响最后的make,我遇到失败的是:

apt install zlib-static
apt install libunwind
apt install libbabeltrace
apt install python-dev-is-python3

   之后在perf目录下执行make指令,注意要用交叉编译链,因为当前是ubuntu,我们需要放入arm架构中。执行完的结果如下所示:

make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

在这里插入图片描述

   生成了perf应用

在这里插入图片描述

   将生成的perf文件传入设备的/usr/bin中。此处博主设备的根文件放在ubuntu下的/home/wp/Linux/nfs/rootfs,因此可以用如下指令复制perf应用进去

cp perf /home/wp/Linux/nfs/rootfs/usr/bin/

   此时再打开MobaXterm,我们输入指令perf --version就可以看到当前的perf版本。

在这里插入图片描述

问题

   将perf引用文件放入/usr/bin后,输入perf -v出现如下问题:

在这里插入图片描述

   原因是当时编译的时候没有使用交叉编译链,还是用的linux下的环境,因此在make一步需要加上交叉编译链。记得要先clean一下

make clean
make -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

参考资料

[1] 学会使用perf性能分析工具(含移植到arm-linux开发板)

[2] ubuntu源码安装性能分析工具perf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/438714.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity性能优化篇(四) GPU Instancing

使用GPU Instancing可以在一个Draw Call中同时渲染多个相同或类似的物体,从而减少CPU和GPU的开销。 官方文档:https://docs.unity3d.com/Manual/GPUInstancing.html 启用GPU Instancing,我们可以选中一个材质,然后在Inspector窗口…

【你也能从零基础学会网站开发】Web建站之HTML+CSS入门篇 传统布局和Web标准布局的区别

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 传统布局与…

c++复习

基础 内存分区 栈: 存放函数的局部变量、函数参数、返回地址等,由编译器自动分配和释放。 堆: 动态申请的内存空间,就是由 malloc 分配的内存块,由程序员控制它的分配和释放,如果程序执行结束还没有释放…

【MySQL 系列】MySQL 起步篇

MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域,MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版,社区版完全免费,并且几乎能满足全部的使用场景。由于 MySQL 是开源的,我们还可以根…

[HackMyVM]Quick 2

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…

Chromium内核浏览器编译记(四)Linux版本CEF编译

转载请注明出处:https://blog.csdn.net/kong_gu_you_lan/article/details/136508294 本文出自 容华谢后的博客 0.写在前面 本篇文章是用来记录编译Linux版本CEF的步骤和踩过的坑,以防止后续再用到的时候忘记,同时也希望能够帮助到遇到同样问…

Uboot的start.s源码分析

/* * armboot - Startup Code for ARM920 CPU-core * * Copyright (c) 2001 Marius Gr鰃er <magsysgo.de> * Copyright (c) 2002 Alex Z黳ke <azusysgo.de> * Copyright (c) 2002 Gary Jennejohn <gjdenx.de> * * See file CREDITS for list of people w…

微软首批 AI PC 产品将于3月21日发布;腾讯、字节再战 AI 社交产品

微软首批 AI PC 产品将于 3 月 21 日发布 据 Windows Central 报道&#xff0c;微软将于 3 月 21 日发布 Surface Pro 10 和 Surface Laptop 6&#xff0c;这有望成为微软首批 AI PC 产品&#xff0c;性能与效率或可媲美苹果 iPad Pro 和 MacBook Pro。 新品将搭载基于英特尔酷…

OpenHarmony教程指南—Ability的启动模式

介绍 本示例展示了在一个Stage模型中&#xff0c;实现standard、singleton、specified多种模式场景。 本实例参考开发指南 。 本实例需要使用aa工具 查看应用Ability 模式信息。 效果预览 使用说明 1、standard模式&#xff1a; 1&#xff09;进入首页&#xff0c;点击番茄…

arm系统构建的基础知识

目录 一、环境变量 二、归档和压缩 (一) 常用命令 (二) 常用参数 三、磁盘分区和挂载 四、网络管理 一、环境变量 显示环境变量 —— echo设置临时环境变量 —— exportecho $PATH —— 显示当前PATH环境变量 在当前目录下&#xff0c;编写一个hello.c 编译并运行。 图…

HTML静态网页成品作业(HTML+CSS)——花主题介绍网页设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

免费实时天气预报api接口

5分钟更新一次,包含基本天气信息、24小时逐小时天气、实时气象预警列表、湿度、能见度、气压、日出日落、9大生活指数、pm2.5、pm10、o3、no2、so2、是否需要带口罩、外出适宜、开窗适宜、是否需要打开净化器等,可按地名、城市编号、IP查询。 新增:优化预警字段, 返回实时预…

16、电源管理入门之驱动Runtime PM管理

目录 1. 框架介绍 1.1 为什么需要Runtime PM Framework? 1.2 系统框架图 2. Drivers 3. Runtime PM core 4. power domain framework 5. runtime pm的sysfs 6参考: Runtime PM管理也就是设备驱动里面的电源管理,即设备驱动结构体里面的struct dev_pm_ops,只控制设…

Spring Boot 配置热部署

前言 对于 Spring Boot 项目之中, 在刚开始学习的时候, 每当代码进行变动的时候, 想要生效那就必须要手动重启. 为什么要重启呢 ? 原因在于写的代码是依靠运行之后的 class 文件运行的, 当我们的代码更新以后, 如果不去手动重启, 那么就无法生成新的 class 文件, 执行的就是旧…

影响哈默纳科Harmonic减速机使用寿命的5大因素

哈默纳科HarmonicDrive减速机以其轻量、小型、传动效率高、减速范围广、精度高等特点&#xff0c;被广泛应用于各种传动系统中。然而&#xff0c;尽管哈默纳科Harmonic减速机具有诸多优势&#xff0c;但其使用寿命仍可能受到多种因素的影响。 首先&#xff0c;环境因素对哈默纳…

grid布局所有元素在同一行显示且等分列

目录 一、问题 二、实现方式 三、总结 tiips:如嫌繁琐&#xff0c;直接移步总结即可&#xff01; 一、问题 1.grid布局可以通过 grid-template-columns来指定列的宽度。且可以通过repeat来指定重复的次数。但是现在的需求是&#xff1a;grid布局中元素的数量不确定&#…

学生信息管理APP

设计内容简介 本次设计使用Android Studio实现一个学生信息管理系统,系统功能结构如下图所示: 详细设计 数据库设计SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低。…

排序算法:插入排序和希尔排序

一、插入排序 1.基本原理 插入排序&#xff08;英语&#xff1a;Insertion Sort&#xff09;是一种简单直观的排序算法。它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上…

27.基于springboot + vue实现的前后端分离-网上租赁交易系统(项目 + 论文)

项目介绍 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上租贸系统&#xff0c;来满足用户网络商品租赁的需求。本网上租贸系统应用Java技术&#xff0c;MYSQL数据库存储数据&#xff0c;基于Spring Boot框架开发。在网站的整个开发过程中&#xff0c;首…

学c++对Python有帮助吗?

学习C对Python编程确实有帮助&#xff0c;尽管这两种语言在许多方面有很大的不同。以下是学习C可能对Python编程产生帮助的几个方面&#xff1a; 理解底层概念&#xff1a;C是一种更接近硬件的编程语言&#xff0c;它要求程序员更深入地理解内存管理、指针、数据类型等底层概念…