在Linux系统上搭建Android、Linux和Chrome性能监控和Trace分析的系统

perfetto是知名的Android系统性能分析平台。我们还可以用它去分析Linux系统和Chrome(需要装扩展)。本文我们只介绍如何安装的验证。

部署

我们使用Docker部署perfetto ui系统。

FROM ubuntu:20.04
WORKDIR /perfetto-ui
RUN apt-get update -y
RUN apt-get install -y git python3 curl gcc
RUN git clone https://android.googlesource.com/platform/external/perfetto/
RUN perfetto/tools/install-build-deps --ui
RUN perfetto/ui/build
EXPOSE 10000

然后使用下面代码打镜像包

docker build --pull --rm -f "Dockerfile" -t perfetto:latest "."

这个过程比较漫长。我这台24核CPU大概需要13分钟左右才能完成,特别在perfetto/ui/build环节,CPU会满负荷运行。
在这里插入图片描述
然后启动镜像

docker container run -d -p 10000:10000 --name perfetto-ui perfetto:latest

启动到服务可用大概需要1分钟左右。
在这里插入图片描述

验证

打开浏览器,输入本机地址(不是127.0.0.1)和映射的10000端口号,就能看到页面
在这里插入图片描述

Linux Trace

获取Trace

我们单开一台有管理员权限的Linux机器,然后按如下指令安装perfetto

sudo apt-get update -y
sudo apt-get install -y git python3 curl gcc
git clone https://android.googlesource.com/platform/external/perfetto/
perfetto/tools/install-build-deps --linux-arm
cd perfetto/
tools/gn gen --args='is_debug=false' out/linux
tools/ninja -C out/linux tracebox traced traced_probes perfetto

生成trace信息

sudo out/linux/tracebox -o trace_file.perfetto-trace --txt -c test/configs/scheduling.cfg

展现Trace

在刚才的网页中选择“Open trace file”,然后选中刚产出的文件(可通过远程命令,比如sz导出到本地)
在这里插入图片描述
我们就看到Linux系统上各个CPU核心和各个进程的运行情况
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考资料

  • https://perfetto.dev/docs/
  • https://perfetto.dev/docs/quickstart/linux-tracing
  • https://perfetto.dev/docs/contributing/build-instructions

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

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

相关文章

C++初学者:优雅创建第一个窗口

我想学习C做一些实用的程序,但是我不想在软件界面上花太多的时间,可是每每就是界面影响我的思绪。 今天学习C类的包装知识,终于整出了一个我的界面类,虽然封装水平很弱, 这次就用这个类,写了自己工作上常用…

JavaEE初阶-线程3

文章目录 一、线程安全问题-内存可见性二、等待通知2.1 wait()方法2.2 notify()方法 一、线程安全问题-内存可见性 import java.util.Scanner;public class Demo27 {private static int count0;//下面这段代码会出现内存的可见性问题//将从内存中读取count值的操作称为load 判…

数学思想论(有目录)

数学思想是数学发展过程中的重要指导原则,它涉及对数学概念、方法和理论的理解和认识,以及如何利用这些工具来解决实际问题。数学思想的形成和演进是随着数学的发展而逐渐深化的,它体现了人类对数学本质和应用的不断探索和思考。 一些主要的数学思想包括: 函数与方程思想…

如何(关闭)断开 Websocket 连接:简单易懂的实现指南

WebSocket 协议提供了一条用于 Web 应用程序中双向通讯的高效通道,让服务器能够实时地向客户端发送信息,而无需客户端每次都发起请求。本文旨在探讨有关结束 WebSocket 连接的适当时机,内容包括协议的基础知识、如何结束连接、一些使用场景&a…

AI技术助推汽车行业走向更光明的未来

我们在汽车上度过的时间很多,有时候由于交通、天气和其他路况问题,我们在汽车上度过的时间之久甚至会出乎意料。正因如此,保障旅途体验的舒适和安全就显得至关重要。交通事故每天都会发生,因此在车辆中采取额外的安全措施对于所有…

美创科技获浙江省网络空间安全协会多项荣誉认可

4月2日,浙江省网络空间安全协会第二届会员大会第一次会议在杭州隆重召开,近180家会员单位代表、数十位特邀专家、嘉宾莅临现场。浙江省委网信办副主任马晓军出席会议并致辞,本次大会由协会秘书长吴铤主持。 凝心聚力,继往开来&…

Redis中的复制功能(五)

心跳检测 概述 在命令传播阶段&#xff0c;从服务器默认会以每秒一次的频率&#xff0c;向主服务器发送命令: REPLCONF ACK < replication_offset >其中replication_offset是从服务器当前的复制偏移量。 发送REPLCONF ACK命令对于主从服务器有三个作用: 1.检测主从服…

【Linux实验室】NFS、DHCP的搭建

NFS、DHCP的搭建 1、nfs服务搭建及测试什么是NFS&#xff1f;环境准备服务端机器安装nfs-utils和rpcbind包启动NFS服务创建/data/NFSdata目录&#xff0c;配置nfs文件启动服务挂载测试在服务端在共享目录下创建文件测试在客户端在共享目录下创建文件 2、dhcp服务搭建及测试什么…

【调度工具】Azkaban用户手册

目录 一、概述 1.1 Azkaban 是什么 1.2 Azkaban 特点 1.3 Azkaban 与 Oozie 对比 功能 工作流定义 工作流传参 定时执行 资源管理 工作流执行 工作流管理 1.4 Azkaban 运行模式及架构 Azkaban 三大核心组件 Azkaban有两种部署方式 Azkaban Web Server Azkaban …

使用Linux strace追踪系统调用: 一个详细指南

使用Linux strace追踪系统调用: 一个详细指南 Linux strace是一个强大的命令行工具&#xff0c;用于监视和调试进程中发生的系统调用和信号。它对于系统管理员和开发人员来说是理解程序行为和解决问题的重要工具。 什么是strace&#xff1f; strace是一种跟踪运行中的进程执…

【教程】宝塔default.db占用空间几十g解决方法|宝塔占用磁盘空间特别大解决方法|宝塔磁盘被占满怎么清理

目录 一、前言二、排查问题三、解决方法 一、前言 用过宝塔创建网站&#xff0c;大家应该都非常熟悉&#xff0c;但是用随着用的时间越来越多&#xff0c;宝塔所占用的空间也越来越多&#xff0c;不停的加大数据盘都没有用&#xff0c;我原先买了30G够用了&#xff0c;随着时间…

代码随想录算法训练营第二十九天| LeetCode 491.递增子序列、46.全排列、47.全排列 II

一、LeetCode 491.递增子序列 题目链接/文章讲解/视频讲解&#xff1a;https://programmercarl.com/0491.%E9%80%92%E5%A2%9E%E5%AD%90%E5%BA%8F%E5%88%97.html 状态&#xff1a;已解决 1.思路 这道题看似和90题差不多&#xff0c;都是求子集并且有重复元素&#xff0c;但实则…

力扣24. 两两交换链表中的节点

Problem: 24. 两两交换链表中的节点 文章目录 题目描述思路复杂度Code 题目描述 思路 1.创建虚拟头节点dummy和尾指针tial指向dummy&#xff1b;创建指针p指向head 2.当head不为空同时head -> next 不为空时&#xff1a; 2.1.创建指针nextP指向p -> next -> next; 2.2…

0203逆矩阵-矩阵及其运算-线性代数

文章目录 一、逆矩阵的定义、性质和求法二、逆矩阵的初步应用结语 一、逆矩阵的定义、性质和求法 定义7 对于 n n n阶矩阵A&#xff0c;如果有一个 n n n阶矩阵B&#xff0c;使 A B B A E ABBAE ABBAE 则说矩阵A是可逆的&#xff0c;并把矩阵B称为A的逆矩阵&#xff0c;简称逆…

[xboard]real6410-3 官方镜像烧录与功能测试

文章目录 1 real6410官方资源1 官方镜像2 官方源码3 官方测试2 ok6410a资源3 友善6410资源4 uboot学习参考 1 real6410官方资源 1 官方镜像 2 官方源码 3 官方测试 2 ok6410a资源 3 友善6410资源 4 uboot学习 参考

Redis Stack十部曲之二:理解Redis Stack中的数据类型

文章目录 前言String字符串作为计数器限制 List限制列表阻塞列表自动创建和删除聚合类型键限制 Set限制 Hash限制 Sorted Set范围操作字典操作更新分数 JSON路径限制 BitMapBitfieldProbabilisticHyperLogLogBloom filterCuckoo filtert-digestTop-KCount-min sketchConfigurat…

抽象类为什么有抽象方法?

以一个简单的图形绘制程序为例&#xff0c;其中我们将创建一个抽象类Shape&#xff0c;它定义了所有形状共有的行为和属性&#xff0c;同时允许具体的子类提供自己的实现。 首先&#xff0c;我们定义一个抽象类Shape&#xff1a; java public abstract class Shape { // 形状的…

mongodb 基础查询使用

环境安装 https://blog.csdn.net/qq_42402648/article/details/134932412 net start MongoDB 启动 net stop MongoDB 停止测试插入数据结构 {"create_time": {"$data": "1711244538176"},"language": "en","create_ti…

AI绘画:Stable Diffusion的高效操作界面,ComfyUI:安装和使用篇

前言 Stable Diffusion&#xff08;简称SD&#xff09;是一款强大的AI绘画工具&#xff0c;通常通过Web UI操作界面进行使用。然而&#xff0c;对于那些寻求更高效率和个性化工作流的用户来说&#xff0c;ComfyUI提供了一个基于节点流程的操作界面&#xff0c;使得工作流定制更…

文献分享:《Clinical metagenomics》

摘要|临床宏基因组下一代测序&#xff08;mNGS&#xff09;是对患者样本中微生物和宿主遗传物质&#xff08;DNA和RNA&#xff09;的综合分析&#xff0c;目前正迅速从研究向临床实验室发展。这种新兴的方法正在改变医生诊断和治疗传染病的方式&#xff0c;其应用涉及广泛的领域…