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

Linux系统中的Perf总结

Linux系统中的Perf总结

Perf 是一个集成在 Linux 内核中的强大性能分析工具,在 Ubuntu 系统上尤为实用。它可以帮助用户监控和分析 CPU、内存、I/O 等性能指标。本文将一步步详解 Perf 在 Ubuntu 系统中的安装、使用方法及进阶技巧,带你从入门走向精通。


第一步:认识 Perf

Perf(Performance Counters for Linux)是一个基于内核的性能分析工具,支持硬件事件(如 CPU 周期、缓存命中)和软件事件(如系统调用、上下文切换)的监控。它适用于:

  • 性能瓶颈定位
  • 系统优化
  • 实时和离线分析

在 Ubuntu 上,Perf 是开发者和系统管理员的必备工具。


第二步:安装 Perf

在 Ubuntu 上安装 Perf 非常简单,以下是详细步骤:

使用 APT 安装(推荐)

  1. 更新软件包索引
    sudo apt update
    
  2. 安装 Perf
    sudo apt install linux-tools-common linux-tools-$(uname -r)
    
    • linux-tools-common 提供 Perf 核心工具。
    • linux-tools-$(uname -r) 确保与当前内核版本匹配。
  3. 验证安装
    perf --version
    
    输出示例:perf version 5.15.0

从源码安装(可选)

若需最新版本:

  1. 安装依赖:
    sudo apt install build-essential flex bison libelf-dev libdw-dev libnewt-dev libssl-dev libunwind-dev
    
  2. 下载并编译:
    git clone https://github.com/torvalds/linux.git
    cd linux/tools/perf
    make
    sudo make install
    

第三步:掌握基本用法

Perf 提供多个子命令,以下是核心功能介绍:

1. perf stat - 统计性能

统计程序运行时的性能数据。

  • 示例:
    perf stat ./myprogram
    
    输出 CPU 周期、指令数等。

2. perf record - 记录数据

记录性能数据到 perf.data 文件。

  • 示例:
    perf record ./myprogram
    

3. perf report - 分析数据

分析 perf record 记录的数据。

  • 示例:
    perf report
    

4. perf top - 实时监控

实时显示性能热点。

  • 示例:
    sudo perf top
    

5. perf list - 查看事件

列出支持的性能事件。

  • 示例:
    perf list
    

第四步:深入核心子命令

以下是具体用法和示例:

perf stat

  • 监控特定程序
    perf stat ./myprogram
    
  • 监控系统整体
    sudo perf stat -a sleep 10
    

perf record

  • 记录调用栈
    perf record -g ./myprogram
    
  • 指定事件
    perf record -e cpu-clock ./myprogram
    

perf report

  • 查看分析结果
    perf report
    
    显示函数占用比例。

perf top

  • 实时监控缓存未命中
    sudo perf top -e cache-misses
    

第五步:进阶应用

掌握以下技巧,提升 Perf 使用水平:

1. 监控多线程

  • 监控特定进程
    perf record -p 1234
    

2. 硬件事件分析

  • 监控 L1 缓存未命中
    perf stat -e L1-dcache-load-misses ./myprogram
    

3. 系统调用跟踪

  • 跟踪 open 调用
    perf trace -e open ./myprogram
    

4. 生成火焰图

  1. 安装工具:
    sudo apt install flamegraph
    
  2. 生成:
    perf record -F 99 -g ./myprogram
    perf script | flamegraph > flame.svg
    

第六步:实战案例

问题:程序 CPU 使用率高

  1. 记录数据
    perf record -g ./myprogram
    
  2. 分析
    perf report
    
    发现 compute 函数占用 60%。
  3. 优化:修改代码,减少循环。
  4. 验证
    perf stat ./myprogram
    
    CPU 使用率降低。

第七步:学习路径

  • 入门:安装 Perf,掌握 perf statperf list
  • 进阶:使用 perf recordreporttop 分析程序。
  • 精通:结合火焰图、系统调用跟踪优化性能。

总结

通过以上步骤,你可以在 Ubuntu 上从零开始掌握 Perf。从安装到实战,Perf 能帮助你深入理解系统性能并优化应用。继续探索高级功能(如 eBPF 集成),你将更熟练地应对复杂场景!

相关文章:

Linux系统中的Perf总结

Linux系统中的Perf总结 Perf 是一个集成在 Linux 内核中的强大性能分析工具,在 Ubuntu 系统上尤为实用。它可以帮助用户监控和分析 CPU、内存、I/O 等性能指标。本文将一步步详解 Perf 在 Ubuntu 系统中的安装、使用方法及进阶技巧,带你从入门走向精通。…...

每日算法-250417

每日算法 - 20250417 记录今天的算法学习过程,包含三道 LeetCode 题目。 1005. K 次取反后最大化的数组和 题目 思路 贪心 解题过程 想要获得最大的数组和,我们的目标是尽可能地增大数组元素的总和。一种有效的贪心策略是:每次选择数组中绝…...

16.4B参数仅激活2.8B!Kimi-VL-A3B开源:长文本、多模态、低成本的AI全能选手

近日,月之暗面(Moonshot AI)开源了Kimi-VL系列模型,包含Kimi-VL-A3B-Instruct(指令调优版)和Kimi-VL-A3B-Thinking(推理增强版)。这两款模型以总参数16.4B、激活参数仅2.8B的轻量化设…...

山东大学软件学院创新项目实训开发日志(17)之中医知识历史问答历史对话查看功能完善

本次完善了历史对话的查看功能,可以让其正常显示标题 后端:在conversationDTO功能构造方法添加title 前端:在历时会话按钮添加标题title即可 前端效果展示,成功(^-^)V:...

关于Java集合中对象字段的不同排序实现方式

📊 关于Java集合中对象字段的不同排序实现方式 #Java集合 #排序算法 #Comparator #性能优化 一、排序基础:两种核心方式对比 方式Comparable接口Comparator接口实现位置目标类内部实现独立类或匿名内部类排序逻辑自然排序(固定规则&#xf…...

ZKmall开源商城静态资源管理:Nginx 配置与优化

ZKmall开源商城作为电商平台,其商品图片、前端资源等静态内容的高效管理与分发直接影响用户体验和系统性能。基于Nginx的静态资源管理方案,结合动静分离、缓存优化、安全加固、性能调优四大核心策略,可显著提升平台响应速度与稳定性。以下是具…...

Google Gemini 系列AI模型 的详细解析,涵盖其技术特点、版本差异、应用场景及优势

以下是 Google Gemini 系列AI模型 的详细解析,涵盖其技术特点、版本差异、应用场景及优势: 1. Gemini 系列概述 发布背景: Google于2023年推出 Gemini 系列模型,作为其多模态大模型的里程碑,旨在结合文本、图像、音频…...

量子通信应用:量子安全物联网(三)协议融合

第一部分:引言与概述 1.1 量子安全物联网的背景与必要性 随着物联网(IoT)设备的爆炸式增长(预计2030年全球连接设备超750亿台),传统安全机制(如RSA、ECC加密)正面临量子计算的颠覆性威胁。量子计算机的Shor算法可在多项式时间内破解非对称加密体系,而Grover算法则对…...

鸿蒙API15 “一多开发”适配:解锁黄金三角法则,开启高效开发新旅程

一、引言 在万物互联的时代浪潮中,鸿蒙操作系统以其独特的 “一多开发” 理念,为开发者打开了一扇通往全场景应用开发的新大门。“一多开发”,即一次开发,多端部署 ,旨在让开发者通过一套代码工程,就能高效…...

量子计算:开启未来科技之门的钥匙

在当今科技飞速发展的时代,量子计算正逐渐从实验室走向实际应用,成为全球科技领域的焦点之一。它有望为众多行业带来前所未有的变革,从密码学、药物研发到金融风险评估等,量子计算的潜力不可限量。 一、量子计算的原理 量子计算基…...

k230学习笔记-疑难点(1)

1.出现boot failed with exit code 19: 需要将k230开发板的btoot0拨到ON 2.出现boot failed with exit code 13: 说明k230开发板的固件烧录已经丢失,需要重新烧录 *** 注意重新烧录时需要将btoot0重新拨到OFF,才会弹出加载固件需要的通用串行总线&…...

驱动-自旋锁

前面原子操作进行了讲解, 并使用原子整形操作对并发与竞争实验进行了改进,但是原子操作只能对整形变量或者位进行保护, 而对于结构体或者其他类型的共享资源, 原子操作就力不从心了, 这时候就轮到自旋锁的出场了。 两个…...

10.(vue3.x+vite)div实现tooltip功能(css实现)

1:效果截图 2:代码实现 <template><div><div class="tooltip" style="margin-top: 20%; margin-left: 20%; background-color: blueviolet; color: white;...

使WebSocket 稳定可靠,需要考虑的方向

文章目录 1. 连接管理2. 心跳检测3. 重连机制4. 消息队列5. 错误处理6. 资源管理7. 安全性8. 状态同步 示例代码1. 添加依赖2. WebSocket 客户端实现代码注释功能标注3. 安卓端使用MainActivity.java布局文件&#xff08;activity_main.xml&#xff09; 4. 后端&#xff08;Fla…...

Linux:进程:进程调度

进程在CPU上运行具有以下特性&#xff1a; 竞争、独⽴、并⾏、并发 竞争性:系统进程数⽬众多&#xff0c;⽽CPU资源很少甚至只有一个&#xff0c;所以进程之间是具有竞争属性的。为 了⾼效完成任务&#xff0c;更合理竞争相关资源&#xff0c;便具有了优先级 独⽴性: 为了避…...

Stable Diffusion 图像生成 GUI 应用:图像缩放等五个优化——SD界面学习记录

本篇续前面Stable DiffusionPyqt5实现图像生成和管理界面&#xff0c;链接如下&#xff1a; Stable DiffusionPyqt5&#xff1a; 实现图像生成与管理界面&#xff08;带保存 历史记录 删除功能&#xff09;——我的实验记录&#xff08;结尾附系统效果图&#xff09;-CSDN博客…...

职坐标解码互联网行业转型发展新动能

当前&#xff0c;互联网行业正以前所未有的速度重塑全球产业格局。工信部最新数据显示&#xff0c;我国互联网企业营收连续三年保持双位数增长&#xff0c;其中百强企业在人工智能、物联网等领域的投入强度同比提升40%&#xff0c;展现出强劲的技术引领力。与此同时&#xff0c…...

【含文档+PPT+源码】基于微信小程序的非遗文化黄梅戏宣传平台的设计与实现

课程目标&#xff1a; 教你从零开始部署运行项目&#xff0c;学习环境搭建、项目导入及部署&#xff0c;含项目源码、文档、数据库、软件等资料 课程简介&#xff1a; 本课程演示的是一款基于微信小程序的非遗文化黄梅戏宣传平台的设计与实现&#xff0c;主要针对计算机相关…...

Causal Attention的底层原理

Causal Attention Transformer的Decoder中最显著的结构是Casual Attention。 通过本篇文章&#xff0c;你将学会 Casual Attention的机制原理 Casual Attention在TensorFlow中的实现原理 如何快速地保存并打印TensorFlow中模型已经训练好的参数 如何实现Transformer的Dec…...

深入理解类:ArkTS面向对象编程的核心概念

# 深入理解类&#xff1a;ArkTS面向对象编程的核心概念 在编程世界里&#xff0c;面向对象编程&#xff08;OOP&#xff09;是一种强大的编程范式&#xff0c;而类则是OOP的核心构建块。在ArkTS语言中&#xff0c;类的设计和使用对于构建复杂、可维护的应用程序至关重要。今天…...

AI 驱动下的后端开发架构革命:从智能协同体系

AI 驱动下的后端开发架构革命&#xff1a;从智能协同体系 一、引言&#xff1a;AI 重构后端开发范式 在 2025 年的企业级技术演进中&#xff0c;人工智能正从辅助工具升级为核心架构要素。根据 Gartner《2025 智能技术栈成熟度报告》&#xff0c;传统 "人力编码 硬规则…...

vue3 Ts axios 封装

vue3 Ts axios 封装 axios的封装 import axios, { AxiosError, AxiosInstance, InternalAxiosRequestConfig, AxiosResponse, AxiosRequestConfig, AxiosHeaders } from axios import qs from qs import { config } from ./config import { ElMessage } from element-plus// …...

CyberAgentAILab 开源数字人项目TANGO,heygen的开源版来了~

简介 TANGO 是 CyberAgentAILab 开源的一项前沿研究成果&#xff0c;其初衷在于探索高效生成模型在实际应用场景中的表现。项目诞生于 CyberAgent 在整合创意与人工智能的实践中&#xff0c;旨在为数字内容生成、交互和实时渲染等领域提供一个高性能、模块化、可扩展的解决方案…...

ROS ROS2 机器人深度相机激光雷达多传感器标定工具箱入门教程(一)

系列文章目录 目录 系列文章目录 前言 一、安装 1.1 ROS 2 官方软件包 二、教程 2.1 标定配置器 2.1.1 机器人选项 2.1.2.1 外参相机-激光雷达标定 2.1.2.2 外参激光雷达-激光雷达标定 2.1.2.3 外参相机参照标定 2.1.2.4 外参激光雷达-参考标定 2.2 外参照相机-激…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(6):ながら 一边。。一边

日语学习-日语知识点小记-构建基础-JLPT-N4阶段&#xff08;6&#xff09;&#xff1a;ながら 一边。。一边 1、前言&#xff08;1&#xff09;情况说明&#xff08;2&#xff09;工程师的信仰 2、知识点&#xff08;1&#xff09;ながら1&#xff09;一边。。一边2&#xff0…...

从EOF到REOF:如何用旋转经验正交函数提升时空数据分析精度?

目录 1. 基本概念与原理2. 应用场景3. 与传统EOF的区别4. 技术实现5. 其他领域中的“REOF”参考资料 REOF 的输入是多个地区在不同时间的气候数据&#xff08;如温度或降雨量&#xff09;&#xff0c;它的作用是通过旋转计算找出这些数据中最主要的变化规律&#xff0c;输出则是…...

【HDFS入门】HDFS与Hadoop生态的深度集成:与YARN、MapReduce和Hive的协同工作原理

目录 引言 1 HDFS核心架构回顾 2 HDFS与YARN的集成 3 HDFS与MapReduce的协同 4 HDFS与Hive的集成 4.1 Hive架构与HDFS交互 4.2 Hive数据组织 4.3 Hive查询执行流程 5 HDFS在生态系统中的核心作用 6 性能优化实践 7 总结 引言 在大数据领域&#xff0c;Hadoop生态系统…...

用 AI 十天开发小程序:探秘 “幸运塔塔屋” 之 “解惑指南书” 功能

在当今软件开发领域&#xff0c;AI 技术正以前所未有的速度改变着我们的开发方式。我仅用十天时间&#xff0c;借助 AI 成功开发出 “幸运塔塔屋” 小程序&#xff0c;其中 “解惑指南书” 功能别具一格。今天&#xff0c;就为大家详细剖析这个功能从构思到落地的全过程。 十天…...

直流电源基本原理

整流电路 在构建整流电路时&#xff0c;要选择合适参数的二极管 If是二极管能够通过电流的能力&#xff0c;也是最大整流的平均电流。 还要考虑二极管的反向截至电压。 脉动系数电压交流幅值/直流平均电压&#xff08;越小越好&#xff09; 三相整流电路优点&#xff1a; …...

osu ai 论文笔记 DQN

e https://theses.liacs.nl/pdf/2019-2020-SteeJvander.pdf Creating an AI for the Rhytm Game osu! 20年的论文 用监督学习训练移动模型100首歌能达到95准确率 点击模型用DQN两千首歌65准确率 V抖用的居然不是强化学习&#xff1f; 5,6星打96准确度还是有的东西的 这是5.…...