perf的安装与迁移

news2024/11/17 13:48:11

前言

   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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch之文档的存储

写在前面 本文看下文档的存储相关内容。 1:如何确定文档存储在哪个分片? 我们需要确保文档均匀分布在所有的分片中,避免某些部分机器空闲,部分机器繁忙的情况出现,想要实现均匀分布我们可以考虑如下的几种分片路由算…

HUAWEI Pocket 2说的防晒检测,能做到什么程度?

防晒是必须,还是噱头?我们来看一下经典案例: 《新英格兰医学杂志》调查一名69岁的卡车司机发现,他位于车窗侧、遭受更多阳光直晒的左半边脸,无论是皱纹还是皮肤厚度,都要比远离阳光的右半边脸要严重得多&am…

如何阅读“计算机界三大神书”之一 ——《计算机程序的构造和解释》SICP

👨‍🎓博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 🐋 希望大家多多支…

【设计模式 05】原型模式

有的时候,我们创建对象,需要耗费大量时间在一些资源型操作上,这个时候,我们就可以先创建出一个模板,然后每次创建的时候直接从模板复制即可,不用反复进行耗时的资源型操作。 python代码: impo…

【C++干货基地】六大默认成员函数: This指针 | 构造函数 | 析构函数

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 哈喽各位铁汁们好啊,我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发,不知道各位的…

【学习心得】Python好库推荐——websocket-client

websocket-client 是一个在 Python 中广泛使用的库,用于创建 WebSocket 客户端并实现与 WebSocket 服务器的双向通信。更多的关于websocket协议介绍,可以看看我之前写的文章哦! 【学习心得】websocket协议简介并与http协议对比http://t.csdn…

什么是工业协议网关?作用是什么?

在工业自动化和智能制造领域,数据的采集、传输和处理是实现设备监控、远程控制和优化的关键。而工业协议网关,作为连接工业设备与上层管理系统的桥梁,发挥着至关重要的作用。今天,我们就来深入解析一下HiWoo Box这一工业协议网关的…

汽车车灯罩破损修复需要准备哪些材料?

汽车车灯罩破损修复需要准备哪些材料? 汽车灯罩破损修复需要准备的材料包括: 砂纸:用于打磨灯罩表面,去除污渍和划痕。抛光蜡或牙膏:用于抛光灯罩表面,使其恢复光滑和透明。UV胶或玻璃胶:用于填…

WPF —— Border、Frame控件详解

一:Border控件 1.Border介绍 Border(边框)是一个装饰的控件,此控件绘制一个边框、一个背景。用border标签包括目标标签。 不能有多个子元素,要想有多个子元素,多个子元素放在一个父元素下。或者放到grid标…

coreldraw2024中文版发布最新精简版绿色版

CorelDRAW Graphics Suite 2024(简称CDR2024)是一款非常专业的图形设计工具,已推出全新的2024版本,在功能和体验上进一步提升。它具备最新的填充和透明设备功能,可以完全控制任何类型的纹理,适用于网络摄影…

Redis 配置文件详解

Units 单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit,大小写不敏感。 # Redis configuration file example. # # Note that in order to read the configuration file, Redis must be # started with …

png格式怎么改成jpg?3种转换方法轻松掌握

png格式怎么改成jpg?在日常生活和工作中,PNG格式转换成JPG格式的需求十分普遍。无论是制作网页时需要优化图片加载速度,还是在图片编辑过程中需要调整图片格式以兼容不同平台,亦或是需要共享图片时减小文件大小,PNG转J…

惊呼:腾讯云服务器99元一年,要不要来一台?

腾讯云服务器99元一年是真的吗?真的,99元优惠购买入口 txybk.com/go/99 折合每天8元1个月,腾讯云99元服务器配置为2核2G3M带宽,2024年99元服务器配置最新报价为61元一年,如下图: 腾讯云服务器99元一年 腾讯…

华为“仓颉”不是中文编程:中文编程早有所属,势如破竹

“何时能见证中国自主研发的编程语言崛起?”这是我们这些对IT生态心怀关切的人常常深思的问题。 语言,作为文化的灵魂,总是与特定的环境和人群紧密相连。无论是中文还是英语,它们都不仅仅是交流的工具,更是各自文化背…

网络入侵检测系统之Suricata(十)--ICMP实现详解

ICMP协议 Common header 0 1 2 40 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 0 1 2 3 4--------------------------------| Type | Code | Checksum |-----…

学c++对Python有帮助吗?

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

el-form-item内的el-select如何自适应宽度

最近在使用element-ui做后台管理的时候,有个需求是在弹窗组件里面,添加一个el-select下拉框选项,但是给el-select设置的宽度无法自适应,原因很简单,我们不需要设置固定宽度,设置百分比就行了,让…

FPGA AXI4总线信号介绍篇

一.AXI总线类型接口 AXI是一种总线协议,可以挂在多个master和slave: (1)AXI4:主要面向高性能地址映射通信的需求;(突发数据)(地址映射模式) &#x…

微软大中华区商业应用事业部高级产品经理张诗源,将出席“ISIG-低代码/零代码技术与应用发展峰会”

3月16日,第四届「ISIG中国产业智能大会」将在上海中庚聚龙酒店拉开序幕。本届大会由苏州市金融科技协会指导,企智未来科技(LowCode低码时代、RPA中国、AIGC开放社区)主办。大会旨在聚合每一位产业成员的力量,深入探索低…

MySQL 学习笔记(基础篇 Day1)

「写在前面」 本文为黑马程序员 MySQL 教程的学习笔记。本着自己学习、分享他人的态度,分享学习笔记,希望能对大家有所帮助。 目录 0 课程介绍 1 MySQL 概述 1.1 数据库相关概念 1.2 MySQL 数据库 2 SQL 2.1 SQL 通用语法 2.2 SQL 分类 2.3 DDL 2.4 图形…