memory监控方法

Java: 

(adb shell dumpsys meminfo x)堆内存用于存储对象实例和静态变量

Native: 

Code: 

加载app代码用到的内存:比如class对象,读取so,apk,dex文件时用到的mmap文件


Stack:

stack内存存放了栈帧(用于存储局部变量、操作数以及返回地址),每个方法调用都会创建一个栈,stack内存是虚拟机进程独有的


 

GPU显存(dmabuffer)

adb shell dumpsys meminfo 可以获取系统全部显存内存占用大小

adb shell dumpsys meminfo pid  -->  Graphics: 部分也可以获取到进程的显存占用

gpu显存的详细占用存放在如下文件中:/sys/kernel/debug/dma_buf/bufinfo

自动化shell脚本已上传附件

以上命令可查到进程memory占用大小,但查不到进程memory详细分布

发现内存高,内存泄露时如何抓取memory详细数据

Java: 

抓hprof文件,自动化抓取脚本已上传附件(hprof文件分析方法后续文章有详细介绍)

Native: 

抓native内存 推荐采用perfetto和raphael,都是开源的,都能抓到申请native内存的泄露栈,

perfetto适合抓取60s以内没有释放的native内存,raphael可以抓到长时间内存泄露栈(但准确性不好,一些复杂的app有crash,以及释放内存不准确的bug)

自动化抓取脚本已上传附件(raphael和perfetto memory文件分析方法后续文章有详细介绍)

Java,Native内存泄露的分析放在下一篇文章详细介绍,敬请期待

感谢您抽出宝贵时间读完本文,希望您有收获,能不能动动小手指给完❤再走?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WinForms中的UI卡死

WinForms中的UI卡死 WinForms中的UI卡死通常是由于长时间运行的操作阻塞了UI线程所导致的。在UI线程上执行的操作,例如数据访问、计算、文件读写等,如果耗时较长,会使得UI界面失去响应,甚至出现卡死的情况。 解决方法 为了避免…

【算法Hot100系列】有效的括号

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

【算法笔记】状态机dp

状态机dp概述 当一个事件涉及的过程的考虑并且方案数的考虑比较繁琐时,我们可以尝试用状态机的思想去考虑这个问题,将这个问题简化,就是去考虑一个对象他所具有的几种状态。 状态机主要考虑一下两个方面:状态和转移 状态其实也…

MySQL BufferPool精讲

缓存的重要性 我们知道,对于使用InnoDB作为存储引擎的表来说,不管是用于存储用户数据的索引(包括聚簇索引和二级索引),还是各种系统数据,都是以页的形式存放在表空间中的,而所谓的表空间只不过…

[VUE]3-路由

目录 路由 Vue-Router1、Vue-Router 介绍2、路由配置3、嵌套路由3.1、简介3.2、实现步骤3.3、⭐注意事项 4、⭐router-view标签详解 ​🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅…

x-cmd pkg | usql - SQL 数据库的通用交互界面

目录 简介首次用户功能特点竞品和相关作品进一步阅读 简介 “usql” 是一个基于命令行的数据库客户端工具,它允许用户连接和管理多种类型的数据库。usql可以在多个操作系统上运行,包括 Linux、macOS 和 Windows。它还具有插件系统,可以根据需…

SpingBoot的项目实战--模拟电商【5.沙箱支付】

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于SpringBoot电商项目的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. 沙箱支付是什么 二.Sp…

el-table魔改后出现的坑,未解决供大家讨论

目前有一个坑。当我el-table表格字体设置大之后:show-overflow-tooltip会一直显示。 目前产品必须按照Ui图字体大小走,所以导致上面情况

(04)刻蚀——选择刻蚀材料创建所需图形

01、光“堆叠”可不行 前期我们了解了如何制作“饼干模具”。本期,我们就来讲讲如何采用这个“饼干模具”印出我们想要的“饼干”。这一步骤的重点,在于如何移除不需要的材料,即“刻蚀(Etching)工艺”。 ▲ 图1: 移除饼干中间部分,再倒入巧克力糖浆 让我们再来回想一下…

Lumerical------关闭 drawing grid 去更好地显示 mesh grid

Lumerical------关闭 drawing grid 去更好地显示 mesh grid 引言正文 引言 在 Lumerical 结构设置的时候,有时候我们想要查看 mesh 结构的 grid,但是本身默认的 dtawing grid 黑框会阻碍我们的观察,这时,我们便可以通过设置关闭这…

C#中List<T>底层原理剖析

C#中List底层原理剖析 1. 基础用法2. List的Capacity与Count:3.List的底层原理3.1. 构造3.2 Add()接口3.3 Remove()接口3.4 Inster()接口3.5 Clear()接口3.6 Contains()接口3.7 ToArray()接口3.8 Find()接口3.8 Sort()接口 4. 总结5. 参考 1. 基础用法 list.Max() …

简单又好玩的数据库就是有点烦

1 数据库 1.1 数据库类型 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL语句(标准数据查询语句)就是一种基于关系型数据库的语言&#xff…

基于Java SSM框架实现实现机房预约系统项目【项目源码+论文说明】

基于java的SSM框架实现机房预约系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识&#…

2024年度 ROTS - 实时操作系统 Top 15

RTOS(实时操作系统)。 这里说的 RTOS 并非新星球大战电影中的机器人,而是物联网设备、航空系统、空中交通管制等背后的无声协调者,就在地球上。 RTOS,或称实时操作系统,设计它们是为了更好的管理资源&…

Transformer-MM-Explainability

two modalities are separated by the [SEP] token,the numbers in each attention module represent the Eq. number. E h _h h​ is the mean, ∇ \nabla ∇A : ∂ y t ∂ A {∂y_t}\over∂A ∂A∂yt​​for y t y_t yt​ which is the model’s out…

分布式锁3: zk实现分布式锁2 使用临时节点(需要自旋)

一 使用临时节点实现分布式锁 1.1 代码截图 1.2 代码如下 由于zookeeper获取链接是一个耗时过程,这里可以在项目启动时,初始化链接,并且只初始化一次。借助于spring特性,代码实现如下: package com.atguigu.distri…

营业执照代办网站源码 工商注册代账公司模板源码 公司注册和企业资质业务办理网站

这款大气蓝色的网站响应式模板专门为工商记账、公司注册和企业资质业务办理公司设计,包含了16个页面,非常适合正在寻找一个高质量网站模板的企业使用。 该模板使用响应式设计,使其能够在各种设备上呈现良好的用户体验,包括PC、平板和手机等。同时,页面设计非常美观,允许…

JAVA基础语句1

目录 前言 一.JAVA特性 简单 面向对象 分布式 多线程 二.关键字 三.对象和类 对象 类 构造方法 创建对象 访问实例变量和方法 源文件声明规则 Java 包 import 语句 总结 前言 这里参考了:Java 教程 | 菜鸟教程 (runoob.com) 第一个必须是: hello world&a…

【langchain】入门初探实战笔记(Chain, Retrieve, Memory, Agent)

1. 简介 1.1 大语言模型技术栈 大语言模型技术栈由四个主要部分组成: 数据预处理流程(data preprocessing pipeline)嵌入端点(embeddings endpoint )向量存储(vector store)LLM 终端&#xff…

看图识熊(三)

使用Windows Machine Learning加载ONNX模型并推理 环境要求 Windows Machine Learning支持在Windows应用程序中加载并使用训练好的机器学习模型。Windows 10从10.0.17763.0版本开始提供这套推理引擎,所以需要安装17763版本的Windows 10 SDK进行开发,并…