Flutter性能分析工具使用

news2024/10/7 11:21:35

使用前提

flutter常用的性能分析工具,这些工具都集成在android studio中,基本能满足我们的需求了。在下面介绍的几个工具中,Flutter Performance和Flutter Inspector都能够直接在debug模式下使用,但是DevTools只能在profile模式下使用,Profile模式和release模式比较接近,都是使用了AOT预编译,运行速度快,其性能介于debug和release之间,兼顾了性能和调试。一般的纯flutter项目,直接在工程目录下使用命令flutter run --profile启动,如果是混合工程,则需要在flutter的安装目录下找到flutter/packages/flutter_tools/gradle/flutter.gradle文件,在buildModelFor函数中强制返回profile就行了。
在这里插入图片描述
要使用这些工具,需要先在android studio中装上flutter和dart插件。

1、Flutter Performance工具

首先打开flutter performance面板,看一下它的工作区
在这里插入图片描述

  • 1、将渲染情况显示到手机上
  • 2、在手机上显示debug面板,可以观察组件的布局情况,列表滚动方向等,方便调整UI
  • 3、显示文本的Baseline,数字、英文、汉字的绘制不一样,在对齐要求比较严格时可以打开这个功能,通过调整TextStyle对齐。
  • 4、允许减慢动画播放速度
  • Frame Rendering times, 每帧的渲染时长,红色的表示渲染时长过大,可能造成卡顿。
  • Memory usage,内存使用情况
  • Widget rebuild stats, 勾选上Track widget rebuilds, 就可以跟踪widget的构建情况,方便查看哪些widget是build次数最多的,下面显示的依次是widget名字,代码位置,上一帧构建的个数,以及总的构建个数。这个应该算是最有用的功能之一吧,很容易帮助定位到哪些widget构建次数最多,针对性优化。

2、flutter Inspector

这个应该算是我们最常用,同时也是最简单的工具了,一般点击工具栏中的flutter Inspector打开

在这里插入图片描述

这里面的几个小功能都比较简单,基本鼠标移动过去看看说明就知道是什么意思了,我最常用的有1、widget选择工具,可以帮助我们很快的定位到widget的位置,以及在代码中的位置;2、显示widget边界线帮助我们定位布局问题,3、图片占有内存较大时,会高亮翻转显示出来。

3、DevTools

如果直接在终端通过flutter run --profile命令打开项目,它会输出一个html地址,点击打开,就能在浏览器中打开flutter DevTools,可以看到这里面的功能就多了很多,基本把我们上面两个工具都包含进去了。
在这里插入图片描述

工具中Performance的功能和flutter performance提供的差不多,我们主要看看Cpu Profile和Memory两个。首先是Cpu profile, 这是使用需要有一个采样的过程,先点击record, 然后再app上一番操作,比如快速滑动列表,然后点击stop,我们就得到了一段样本,经过分析,我们主要看看CPU Flame Chart,它列出了一些函数的耗时,长度越大的耗时越多,然后我们就可以知道是哪一个函数耗时比较大了,针对耗时较大的函数进行优化。
在这里插入图片描述

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

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

相关文章

铁路中的警冲标

1、警冲标的定义 警冲标是用来指示机车车辆停车时,不准向道岔方向或线路交叉点方向越过,以防止停留在该线上的机车车辆与邻线上的机车车辆发生侧面冲突的标志。另外,在出站道岔上,警冲标用来确定站界标位置。 2、警冲标怎么设置 …

nettyspringboot开发即时通讯系统

Netty 和 Spring Boot 是当今应用最广泛的 Java 技术之一,两个框架的集成能够构建出高效、稳定并且易于扩展的即时通讯系统。在本篇文章中,我们将会学习和探讨 Netty 和 Spring Boot 的整合,并且演示如何使用它们来构建一个高效、实时的即时通…

浓缩咖啡会降低2型糖尿病风险?

咖啡是全球消费最频繁的饮料之一,其潜在的健康效应引发了重要的科学研究。先前的研究已经将更高的咖啡摄入量与较低的T2D风险联系起来,但潜在机制仍不清楚。 一项新研究揭示,咖啡有助于降低2型糖尿病的风险。研究人员发现,每天增加…

安装endnote 之后打开word出现乱码

文章目录 1 安装endnote 之后打开word出现乱码3 EndNote X9 插入参考文献常见问题总结4 EndNote X9 快速上手教程(毕业论文参考文献管理器) 1 安装endnote 之后打开word出现乱码 安装了endnote,打开文档后,目录显示这样&#xff…

虹科案例 | 对症下药,零售行业商业智能分析解决方案及应用案例!

零售行业商业智能分析解决方案 Domo为零售、电子商务、物联网等提供数据洞察力 利用数字增强数字程序的应用 -快速迭代并指导数字化程序的应用。 -有效管理“最后一公里”并降低交付成本。 -优化客户体验并不断适应客户的新需求,例如线下实体店可进行在线退货。…

【Hackthebox Stocker】打靶记录

Hackthebox Stocker nmap 扫描一把 得到tcp端口22 80 nmap -sC -sV 10.10.11.196 Starting Nmap 7.93 ( https://nmap.org ) at 2023-05-10 05:51 EDT Nmap scan report for 10.10.11.196 Host is up (0.25s latency). Not shown: 998 closed tcp ports (reset) PORT STAT…

C++:C++Primer Plus(第六版):Chapter16 : string类和标准模板库:智能指针

Chapter16.2 : 智能指针模板类 1.指针指针现实需求1.1 普通指针弊端 1.2 智能指针现实需求2. 智能指针使用范式2.1 下面演绎三种智能指针用法注意一个问题 3. 三种智能指针特点3.1 为何摒弃 auto_ptr 3.2 选用 unique_ptr3.3 选用 shared_ptr4. 应该使用哪种智能指针 本章节我们…

学好数据结构的秘诀

学好数据结构的秘诀 作为计算机专业的一名“老兵”,笔者从事数据结构和算法的研究已经近20余年了,在学习的过程中,也会遇到一些问题,但在解决问题时,积累了一些经验,为了让读者在学习数据结构的过程中少走…

Vue2全家桶 (Vue2、VueRouter、Vuex) 笔记

前言 有错的地方希望大家能够帮忙指正一下;本文只是对Vue2全家桶的基本语法进行记录。给孩子点点关注吧!😭 壹、Vue2 Vue:一个 JavaScript 渐进式框架; 渐进式:逐渐使用,集合更多的功能&am…

一文总结 Google I/O 2023

今日凌晨举行的谷歌 I / O 2023 开发者大会上,如果说和往年有什么不同,那么应该就是更大力度的 All in AI 。 毕竟在去年 I/O 宣布重点投入 AI 之后,年末却被 OpenAI 的 ChatGPT “越塔偷家”,匆忙攒出一个发布会还让 Bard 爆出事…

国内最大规模上云实践 | 鹅厂如何在云原生2.0时代“挖呀挖”?

👉腾小云导读 2022 年 10 月,腾讯自研业务产品全面完成云原生上云。自研业务产品云上规模已突破 5000w CPU,借助云原生的技术优势,全面提升了腾讯自研业务产品的运营效率,在此过程中我们也对腾讯云产品进行了打磨和验证…

适合Python 初学者入门教程和资源

如果您是 Python 的初学者,以下是一些入门教程和资源可以帮助您快速开始: 1、Python 官方教程: Python 官方网站提供了完整的入门教程,包括语言基础、面向对象编程、模块、文件处理等方面的内容。这是一个非常全面和权威的资源。 2、Codecade…

盖雅工场重磅发布「劳动力账户」,助力企业实现全面工时成本管理

2023年5月10日,亚太地区领先的劳动力管理云服务商盖雅工场宣布,在原有的智能排班和实时考勤系统基础之上,正式推出全新模块「劳动力账户」,通过为企业里的每一位员工建立劳动力账户,实现工时与成本的全面管控&#xff…

一文打通原生Shiro使用

目录 环境准备 添加依赖 INI 文件 登录认证 登录认证概念 登录认证基本流程 登录认证实例 身份认证流程 角色、授权 授权概念 授权方式 授权流程 授权实例 Shiro 加密 Shiro 自定义登录认证 环境准备 Shiro不依赖容器,直接创建maven工程即可 添加依…

机器学习——线性回归

机器学习——线性回归 文章目录 机器学习——线性回归[toc]1 模型设定2 训练模型3 模型预测4 交叉验证 基于Python实现线性回归、预测和建模评估。 1 模型设定 以Boston数据集为例,其中MEDV是标签,其余均为特征变量 CRIM per capita crime rate by tow…

玩转ChatGPT:Excel操作初探

一、写在前面 首先还是让小Chat推销下自己: Excel 表格制作是个技术活,你掌握了吗?没关系,现在有了 ChatGPT,让 Excel 辅助操作变得更简单!再也不用苦恼于数据分析和整理了,让 ChatGPT 成为你…

C语言:简单的扫雷游戏

扫雷游戏想必大家都玩过,像一些大佬呀,十几秒能通关,给大佬点赞,那咱们也设计一个扫雷游戏,具体怎么实现呢,跟上我的脚步,看看用C语言怎么实现简单的扫雷游戏。 一:扫雷游戏的框架 二…

【Linux】冯诺依曼体系结构以及操作系统的初步认知

🏖️作者:malloc不出对象 ⛺专栏:Linux的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录 前言一、冯诺依曼体系结构二、操…

HTB靶机010-SolidState-WP

#oscp SolidState.md 靶机IP 10.10.10.51 scan Nmap : ┌──(xavier㉿kali)-[~] └─$ sudo nmap -sSV -T4 -F 10.10.10.51 Starting Nmap 7.93 ( https://nmap.org ) at 2023-04-10 13:14 CST Nmap scan report for 10.10.10.51 Host is up (0.77s latency). Not shown: …

如果你还不知道SAGA,那这篇不容错过!|分布式事务系列(五)

这是分布式事务系列的第五篇,如果之前文章没读请自行前往。精华专题,强烈建议收藏。 ‍本文详细讲解了分布式事务解决方案——SAGA。 点击上方“后端开发技术”,选择“设为星标” ,优质资源及时送达 SAGA事务 什么是SAGA事务 SAGA…