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

Linux命令:perf

perf 命令基本介绍perfPerformance Counters for Linux是 Linux 系统中用于性能分析的强大工具套件。它基于内核性能计数器PMC可以分析 CPU 使用率、内存访问、缓存命中率、分支预测等硬件级性能指标是系统性能优化和故障诊断的核心工具。资料合集https://pan.quark.cn/s/6fe3007c3e95、https://pan.quark.cn/s/561de99256a5、https://pan.quark.cn/s/985f55b13d94、https://pan.quark.cn/s/d0fb20abd19a语法perf [--version] [--help] [OPTIONS] COMMAND [ARGS]常用子命令性能分析命令perf stat执行命令并收集性能统计信息perf record记录性能事件数据perf report分析记录的数据并生成报告perf top实时显示系统性能热点perf probe动态添加探测点追踪命令perf trace追踪系统调用和函数调用perf sched分析调度器性能perf lock分析锁性能perf mem分析内存访问性能其他命令perf list列出可用的性能事件perf annotate对代码进行注解分析perf bench运行性能基准测试perf test运行内置测试常用选项通用选项-h, --help显示帮助信息-v, --version显示版本信息-e, --eventEVENT指定要监控的性能事件-p, --pidPID监控指定进程-t, --tidTID监控指定线程-C, --cpuCPU监控指定 CPUperf record 选项-o, --outputFILE输出到指定文件-g, --call-graph记录调用图-F, --freqHZ采样频率-c, --countNUM事件计数阈值perf stat 选项-r, --repeatN重复执行 N 次-n, --null不执行命令只显示统计-a, --all-cpus监控所有 CPU使用示例1. 查看可用的性能事件perf list perf list|grepcache perf list|grepcpu2. 执行命令并收集性能统计perfstatlsperfstat-r3./myprogram perfstat-ecycles,instructions,cache-misses ./myprogram输出示例Performance counter stats for ./myprogram: 123,456,789 cycles:u # 0.500 GHz 234,567,890 instructions:u # 1.90 insn per cycle 1,234,567 cache-misses:u # 0.50% of all cache refs 12,345,678 cache-references:u 0.247839456 seconds time elapsed 0.123456789 seconds user 0.012345678 seconds sys3. 记录性能数据perf record-g./myprogram perf record-F99-g-p1234perf record-ecpu-clock,page-faults-operf.data ./myprogram4. 分析记录的数据perf report perf report-iperf.data perf report --call-graphgraph5. 实时性能分析perftopperftop-p1234perftop-ecycles6. 追踪系统调用perf tracelsperf trace-p1234perf trace-eopen,close,read,write7. 分析内存访问性能perf mem record ./myprogram perf mem report8. 分析调度器性能perf sched record ./myprogram perf sched report perf sched latency9. 添加动态探测点perf probe-x/bin/ls main perf probe-x./myprogram my_function10. 代码注解分析perf annotate perf annotate-smy_function常用性能事件CPU 事件事件名称说明cyclesCPU 周期数instructions指令数branches分支指令数branch-misses分支预测失败数cpu-clockCPU 时钟缓存事件事件名称说明cache-references缓存引用次数cache-misses缓存未命中次数L1-dcache-loadsL1 数据缓存加载L1-dcache-load-missesL1 数据缓存未命中LLC-loads最后一级缓存加载LLC-load-misses最后一级缓存未命中内存事件事件名称说明page-faults缺页错误次数major-faults主缺页错误minor-faults次缺页错误软件事件事件名称说明context-switches上下文切换次数cpu-migrationsCPU 迁移次数page-faults缺页错误task-clock任务占用 CPU 时间实用技巧分析程序热点perf record-g-F99./myprogram perf report--sortdso,symbol定位性能瓶颈perfstat-ecycles,instructions,cache-misses,L1-dcache-load-misses ./myprogram分析多线程程序perf record-g-p$(pgrep-d,myprogram)perf report--threadsseparate生成火焰图# 需要安装 FlameGraph 工具perf record-F99-g./myprogram perf script|./stackcollapse-perf.plout.perf-folded ./flamegraph.pl out.perf-foldedflame.svg分析 Java 程序perf record-g-pjava_pidperf report --map-exec-name分析内核性能perf record-g-a-F99sleep10perf report相关命令perf-tools额外的 perf 工具集strace系统调用跟踪ltrace库函数调用跟踪valgrind内存调试工具gdbGNU 调试器top实时系统监控vmstat虚拟内存统计iostatI/O 统计注意事项权限要求大部分 perf 功能需要 root 权限内核配置需要内核支持性能计数器CONFIG_PERF_EVENTS采样频率过高的采样频率会影响系统性能输出文件perf.data 文件可能很大注意磁盘空间符号解析需要安装调试符号包才能正确解析符号Java 程序需要使用-XX:PreserveFramePointer编译选项安装方法Debian/Ubuntuapt-get install linux-tools-common linux-tools-$(uname -r)CentOS/RHELyum install perf总结perf是 Linux 系统中功能强大的性能分析工具套件。它可以帮助开发者和系统管理员深入分析程序的性能瓶颈包括 CPU 使用率、缓存命中率、内存访问模式等。通过perf的各种子命令可以进行实时性能监控、性能数据记录和分析、代码热点定位等操作是系统性能优化的必备工具。

相关文章:

Linux命令:perf

perf 命令 基本介绍 perf(Performance Counters for Linux)是 Linux 系统中用于性能分析的强大工具套件。它基于内核性能计数器(PMC),可以分析 CPU 使用率、内存访问、缓存命中率、分支预测等硬件级性能指标&#xff0…...

5大核心功能掌握HandheldCompanion:Windows掌机终极控制伴侣

5大核心功能掌握HandheldCompanion:Windows掌机终极控制伴侣 【免费下载链接】HandheldCompanion ControllerService 项目地址: https://gitcode.com/gh_mirrors/ha/HandheldCompanion 你是否正在寻找一款能够彻底改变Windows掌机游戏体验的控制软件&#xf…...

ClojureDocs性能优化技巧:5个关键策略提升文档网站响应速度 [特殊字符]

ClojureDocs性能优化技巧:5个关键策略提升文档网站响应速度 🚀 【免费下载链接】clojuredocs clojuredocs.org web app 项目地址: https://gitcode.com/gh_mirrors/cl/clojuredocs ClojureDocs作为社区驱动的Clojure文档网站,其性能优…...

Windows多显示器DPI缩放终极解决方案:告别模糊显示,享受清晰视觉体验

Windows多显示器DPI缩放终极解决方案:告别模糊显示,享受清晰视觉体验 【免费下载链接】SetDPI 项目地址: https://gitcode.com/gh_mirrors/se/SetDPI 你是不是曾经遇到过这样的困扰?连接多个显示器时,文字和图标大小不一&…...

如何在macOS上免费安装HSTracker:终极炉石传说套牌追踪器完整指南

如何在macOS上免费安装HSTracker:终极炉石传说套牌追踪器完整指南 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 还在为炉石传说对局中记不住对手出牌而烦恼…...

初创公司如何通过Taotoken快速为产品原型注入多种AI能力

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创公司如何通过Taotoken快速为产品原型注入多种AI能力 对于初创公司而言,资源有限、时间紧迫是常态。产品原型的快速…...

AFOAuth2Manager调试技巧:常见问题排查与解决方案

AFOAuth2Manager调试技巧:常见问题排查与解决方案 【免费下载链接】AFOAuth2Manager AFNetworking Extension for OAuth 2 Authentication 项目地址: https://gitcode.com/gh_mirrors/af/AFOAuth2Manager AFOAuth2Manager是AFNetworking的OAuth 2.0认证扩展库…...

HSTracker:macOS上炉石传说玩家的免费智能助手终极指南

HSTracker:macOS上炉石传说玩家的免费智能助手终极指南 【免费下载链接】HSTracker A deck tracker and deck manager for Hearthstone on macOS 项目地址: https://gitcode.com/gh_mirrors/hs/HSTracker 还在为炉石传说对战中记不住对手卡牌而烦恼吗&#x…...

Windows HEIC缩略图解决方案:让iPhone照片在资源管理器中重获新生

Windows HEIC缩略图解决方案:让iPhone照片在资源管理器中重获新生 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 想…...

PagerLayoutManager:让Android网格分页布局实现变得简单高效的终极方案

PagerLayoutManager:让Android网格分页布局实现变得简单高效的终极方案 【免费下载链接】pager-layoutmanager [暂停维护]Android 网格分页布局。 项目地址: https://gitcode.com/gh_mirrors/pa/pager-layoutmanager PagerLayoutManager是一款专为Android开发…...

如何快速上手SoundMind:10分钟完成音频逻辑推理模型训练

如何快速上手SoundMind:10分钟完成音频逻辑推理模型训练 【免费下载链接】SoundMind We introduce the Audio Logical Reasoning (ALR) dataset, consisting of 6,446 text-audio annotated samples specifically designed for complex reasoning tasks. Building o…...

为什么选择Espresso?5大优势让快递管理变得前所未有的简单[特殊字符]

为什么选择Espresso?5大优势让快递管理变得前所未有的简单🚀 【免费下载链接】Espresso 🚚 Espresso is an express delivery tracking app designed with Material Design style, built on MVP(Model-View-Presenter) architecture with RxJ…...

ComfyUI扩展生态系统的智能管家:ComfyUI-Manager全面解析

ComfyUI扩展生态系统的智能管家:ComfyUI-Manager全面解析 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various cu…...

为内部知识库问答系统集成多模型后备路由以提升服务韧性

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为内部知识库问答系统集成多模型后备路由以提升服务韧性 对于依赖大模型提供智能问答服务的企业内部知识库而言,服务的…...

Marlin固件稳定性优化实战指南:从基础配置到高级调校的完整解决方案

Marlin固件稳定性优化实战指南:从基础配置到高级调校的完整解决方案 【免费下载链接】Marlin Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printer…...

Pearcleaner:macOS深度清理终极指南,让磁盘空间翻倍

Pearcleaner:macOS深度清理终极指南,让磁盘空间翻倍 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 你是否曾经卸载了macOS应用&…...

【独家首发】DeepSeek边缘计算白皮书未公开章节:3类典型场景QoS SLA保障公式(含实测RTT抖动衰减模型)

更多请点击: https://intelliparadigm.com 第一章:DeepSeek边缘计算架构全景概览 DeepSeek边缘计算架构以“轻量、协同、自治”为核心设计理念,面向AI推理密集型场景构建端—边—云三级协同的分布式智能执行体。该架构并非传统云中心化模型的…...

暗黑破坏神2存档编辑器:d2s-editor免费可视化编辑终极指南

暗黑破坏神2存档编辑器:d2s-editor免费可视化编辑终极指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 想要轻松修改暗黑破坏神2存档却不懂十六进制?d2s-editor是你的完美解决方案!这款基于…...

开源合规生死线,DeepSeek协议识别错误率高达63%?2024企业级扫描避坑清单全公开

更多请点击: https://intelliparadigm.com 第一章:开源合规生死线,DeepSeek协议识别错误率高达63%?2024企业级扫描避坑清单全公开 近期第三方审计机构对主流AI增强型开源扫描工具开展交叉验证测试,结果显示DeepSeek-R…...

抖音下载器深度解析:零基础轻松批量下载无水印视频

抖音下载器深度解析:零基础轻松批量下载无水印视频 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support.…...

Taotoken的APIKey管理与访问控制功能保障了企业级安全

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的APIKey管理与访问控制功能保障了企业级安全 当团队开始规模化使用大语言模型时,一个核心挑战随之而来&#…...

LaMa图像修复:用AI魔法轻松移除照片中的不想要元素

LaMa图像修复:用AI魔法轻松移除照片中的不想要元素 【免费下载链接】lama 🦙 LaMa Image Inpainting, Resolution-robust Large Mask Inpainting with Fourier Convolutions, WACV 2022 项目地址: https://gitcode.com/GitHub_Trending/la/lama 你…...

Win11Debloat:如何用自动化配置工具实现Windows系统的智能优化

Win11Debloat:如何用自动化配置工具实现Windows系统的智能优化 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutte…...

如何永久保存微信聊天记录?WeChatMsg数据管理工具完全指南

如何永久保存微信聊天记录?WeChatMsg数据管理工具完全指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/W…...

炉石传说脚本:智能游戏自动化助手的完整使用指南

炉石传说脚本:智能游戏自动化助手的完整使用指南 【免费下载链接】Hearthstone-Script Hearthstone script(炉石传说脚本) 项目地址: https://gitcode.com/gh_mirrors/he/Hearthstone-Script 还在为炉石传说重复性的日常任务感到疲惫吗…...

ImageSearch:基于.NET 10的本地硬盘千万级图库以图搜图工具完全指南

ImageSearch:基于.NET 10的本地硬盘千万级图库以图搜图工具完全指南 【免费下载链接】ImageSearch 基于.NET10的本地硬盘千万级图库以图搜图案例Demo和图片exif信息移除小工具分享 项目地址: https://gitcode.com/gh_mirrors/im/ImageSearch ImageSearch是一…...

番茄小说下载器:永久保存心爱小说的5步终极指南

番茄小说下载器:永久保存心爱小说的5步终极指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 还在为喜爱的番茄小说突然下架而烦恼吗?这款免费开源的番茄小说下载…...

MySQL全局ID生成实战:从自增主键到自定义Sequence的平滑升级方案与避坑指南

MySQL全局ID生成实战:从自增主键到自定义Sequence的平滑升级方案与避坑指南 当电商平台的日订单量突破百万时,技术团队突然发现系统开始频繁出现"Duplicate entry"错误——那些原本可靠的自增主键,在分库分表的环境下变成了数据一致…...

H.Test.DefaultApplicationBase-默认应用组合

H.Test.DefaultApplicationBase 示例项目学习教程 一、概述 H.Test.DefaultApplicationBase 展示了如何使用 WPF-Control 框架的默认应用组合(Default ApplicationBase)。这是一个"开箱即用"的应用模板,一键注册所有常用服务和模块…...

压测不只是加并发:我们模拟真实用户行为后,发现了隐藏瓶颈

在性能测试领域,一个根深蒂固的误解是:压测就是使劲加线程数,看系统什么时候崩。很多团队用 JMeter 起 500 个并发,照着接口列表跑一圈,看到 TPS 平稳、响应时间没超过 300ms,就觉得万事大吉。可一旦上线&a…...