app性能

2023-10-29

性能获取办法

appium+webview context + execute script +perfmance api
appium/selenium的ExecuteScript Api
注入js:
return JSON.stringify(window.performance.timing)
JSON.stringify(window.performance.getEntriesByName(document.querySelector("img").src[0],null,2)

{
    "name": "https://testerhome.com/system/letter_avatars/2/A/226_95_81/64.png",
    "entryType": "resource",
    "startTime": 277.4149999895599,
    "duration": 0,
    "initiatorType": "img",
    "nextHopProtocol": "",
    "workerStart": 0,
    "redirectStart": 0,
    "redirectEnd": 0,
    "fetchStart": 277.4149999895599,
    "domainLookupStart": 277.4149999895599,
    "domainLookupEnd": 277.4149999895599,
    "connectStart": 277.4149999895599,
    "connectEnd": 277.4149999895599,
    "secureConnectionStart": 0,
    "requestStart": 277.4149999895599,
    "responseStart": 277.4149999895599,
    "responseEnd": 277.4149999895599,
    "transferSize": 0,
    "encodedBodySize": 0,
    "decodedBodySize": 0,
    "serverTiming": []
}
performance(){
username=$(adb shell ps | grep $1  | awk '{print $1}')
echo "for i in \$(seq 1 60);do top -u $username -o %CPU,%MEM,RES,CMDLINE -b -d 1 -n 1 -q ;done" > /tmp/p.sh
adb push /tmp/p.sh /data/local/tmp/
adb shell sh  /data/local/tmp/p.sh
}
performance com.xueqiu.android
%CUP:cup使用率
%MEM:内存占用率
RES:申请使用的内存(进程占用的物理内存)
SHR:进程使用的共享内存

获取详细内存

adb shell dumpsys meminfo com.xueqiu.android | grep "Native Heap" | head -1
pss:按比例共享内存(实际内存+部分共享内存)
Private Dirty:仅分配给您的应用堆的实际RAM 用来判断内存泄漏,如果内存泄漏,这个值会变大
手机端的性能主要是:耗电量,内存泄漏,cpu,卡顿,崩溃

Applications Memory Usage (in Kilobytes):
Uptime: 59067939 Realtime: 59067939

** MEMINFO in pid 13059 [com.xueqiu.android] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    83864    83636        0        0   114816   100386    14429
  Dalvik Heap    17536    17512        0        0    24391    18247     6144
 Dalvik Other     6872     6872        0        0
        Stack     1936     1936        0        0
       Ashmem     6409      128        0        0
    Other dev       17        0       16        0
     .so mmap     3697      256      772        0
    .apk mmap    17175      100     7372        0
    .ttf mmap      117        0        0        0
    .dex mmap    38235        8    34160        0
    .oat mmap     4485        0     1048        0
    .art mmap     2470     2144       12        0
   Other mmap     7267        4     4608        0
      Unknown     1600     1600        0        0
        TOTAL   191680   114196    47988        0   139207   118633    20573

 App Summary
                       Pss(KB)
                        ------
           Java Heap:    19668
         Native Heap:    83636
                Code:    43716
               Stack:     1936
            Graphics:        0
       Private Other:    13228
              System:    29496

               TOTAL:   191680       TOTAL SWAP PSS:        0

 Objects
               Views:     4988         ViewRootImpl:        1
         AppContexts:        6           Activities:        3
              Assets:        6        AssetManagers:        5
       Local Binders:       51        Proxy Binders:       34
       Parcel memory:       20         Parcel count:       82
    Death Recipients:        2      OpenSSL Sockets:        4
            WebViews:        4

 SQL
         MEMORY_USED:      615
  PAGECACHE_OVERFLOW:      120          MALLOC_SIZE:      117

 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4       32             43       1/1680/2  /data/user/0/com.xueqiu.android/databases/-1.db
         4       52            109    3456/1891/9  /data/user/0/com.xueqiu.android/databases/sn_green_dao_db_v1_7966815868
         4       52            109    108/1693/17  /data/user/0/com.xueqiu.android/databases/bugly_db_

 Asset Allocations
    zip:/data/app/com.xueqiu.android-65ziHf1fRax35Q5gRDHdUA==/base.apk:/assets/fonts/DIN-Bold.otf: 28K
    zip:/data/app/com.xueqiu.android-65ziHf1fRax35Q5gRDHdUA==/base.apk:/assets/fonts/DIN-Medium.otf: 27K
    zip:/data/app/com.xueqiu.android-65ziHf1fRax35Q5gRDHdUA==/base.apk:/assets/fonts/DIN-Regular.otf: 27K

更多性能指标获取方法

adb shell dumpsys procstats --hours 3  进程统计
adb shell dumpsys meminfo package_name|pid [-d]  内存信息
adb shell dumpsys batterystats --charged package-name 电池状态
adb shell dumpsys netstats detail  网络统计
adb shell dumpsys gfxinfo package-name  有关与录制阶段期间发生的动画帧相关的性能信息

转载于:https://www.cnblogs.com/an5456/p/11576096.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

app性能 的相关文章

  • Windows、Emacs、Git Bash 和 shell 命令

    Windows 7 Emacs 24 3 1 git 1 8 1 msysgit 1 我的等效 emacs 文件中有以下内容 if equal system type windows nt progn setq explicit shell
  • 从 bash 脚本运行节点

    很简单 我正在尝试使用 cron 自动运行 nodejs 脚本 但是脚本本身似乎无法运行该文件 我的脚本很简单 usr bin env node node var node assets js update js 但是 在运行此命令时 它返
  • 如何复制每个扩展名为 X 的文件,同时保留原始文件夹结构? (类Unix系统)

    我正在尝试将每个 HTML 文件从 src 文件夹复制到 dist 文件夹 但是 我想保留原始文件夹结构 如果 dist 文件夹不存在 我想创建一个新文件夹 如果文件夹不存在则创建 d dist mkdir dist 复制每个文件 cp R
  • Bash 脚本 - 迭代 find 的输出

    我有一个 bash 脚本 其中需要迭代 find 命令输出的每一行 但似乎我正在迭代 find 命令中的每个单词 以空格分隔 到目前为止我的脚本看起来像这样 folders find maxdepth 1 type d for i in f
  • 在 shell 脚本中查找和替换

    是否可以使用 shell 在文件中搜索然后替换值 当我安装服务时 我希望能够在配置文件中搜索变量 然后在该值中替换 插入我自己的设置 当然 您可以使用 sed 或 awk 来完成此操作 sed 示例 sed i s Andrew James
  • 如何调用位于其他目录的Makefile?

    我正在尝试这样做 我想打电话给 make Makefile存在于其他目录中 abc可以使用位于不同目录中的 shell 脚本的路径 我该怎么做呢 由于 shell 脚本不允许我cd进入Makefile目录并执行make 我怎样才能编写she
  • 如何使用AWK脚本检查表的所有列数据类型? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在这里 我正在检查表中第一列的数据类型 但我想知道AWK中表的所有列数据类型 我尝试过 但只能获得一列数据类型 例如 Column 1
  • 为什么减法返回 - 符号

    我对简单的减法有疑问 但我不明白出了什么问题 我的代码 start date s N cut b1 13 Treatment end date s N cut b1 13 delta expr end start echo delta de
  • 如何让“grep”从文件中读取模式?

    假设有一个很大的文本文件 我只想打印与某些模式不匹配的行 显然 我可以使用egrep v patter1 pattern2 pattern3 现在 如果所有这些模式都在一个文本文件中怎么办 最好的制作方法是什么egrep从文件中读取模式 g
  • Bash 方法的返回值总是模 256

    我有一个 bash 脚本方法 它返回输入值 然而 返回值始终是模 256 的值 我用 google 搜索了一段时间 发现this http www tldp org LDP abs html exitcodes html文章说它总是以 25
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 仅当重复行与模式匹配时才删除它们

    这个问题 https stackoverflow com questions 1444406 how can i delete duplicate lines in a file in unix有一个很好的答案说你可以使用awk seen
  • Bash 解析和 shell 扩展

    我对 bash 解析输入和执行扩展的方式感到困惑 对于输入来说 hello world 作为 bash 中的参数传递给显示其输入内容的脚本 我不太确定 Bash 如何解析它 Example var hello world displaywh
  • 如何在bash中使用jq从变量中包含的json中提取值

    我正在编写一个 bash 脚本 其中存储了一个 json 值 现在我想使用 Jq 提取该 json 中的值 使用的代码是 json val code lyz1To6ZTWClDHSiaeXyxg redirect to http examp
  • 如何在 shell 脚本中操作 $PATH 元素?

    有没有一种惯用的方法从类似 PATH 的 shell 变量中删除元素 这就是我想要的 PATH home joe bin usr local bin usr bin bin path to app bin and remove or rep
  • 如何从 Artifactory 存储库下载最新的工件?

    我需要来自存储库的最新工件 例如快照 人工工厂 http en wikipedia org wiki Software repository Repository managers 该工件需要通过脚本复制到服务器 Linux 我有什么选择
  • 如何在 Windows 下向 .sh 脚本传递参数?

    我正在尝试在 Windows 下执行 sh 脚本 我安装了 Git 它允许我执行 sh 文件 但是 如果不使用 sh 作为执行前缀 我似乎无法传递任何参数 我的 sh 文件 echo Test 1 如果我用以下命令执行它 gt sh tes
  • sed 错误“未终止的 's' 命令”故障排除

    我正在构建一个script https stackoverflow com questions 4036832 replacing a specific term in an xml file其中 它将用文件夹路径替换 XML 文件中的模式
  • 在 iOS 模拟器中安装应用程序的脚本

    我正在尝试自动化构建应用程序 运行单元测试以及最终运行 UI 测试的过程 我正在通过命令行 xcodebuild sdk iphonesimulator6 0 在某个目录中构建应用程序 如何通过命令行 在 Library Applicati
  • 使用 sh 运行 bash 脚本

    我有 bash 脚本 它需要 bash 另一个人尝试运行它 sh script name sh 它失败了 因为 sh 是他的发行版中 dash 的符号链接 ls la bin sh lrwxrwxrwx 1 root root 4 Aug

随机推荐

  • [Python 与 炒股] TuShare 使用篇之三

    2016年新年第一贴 大年夜搞这个只能说明春晚实在是有点无聊 在之前的blog里写了一个最简单的例子 http blog csdn net robertsong2004 article details 50642655 现在试一下简单的分析
  • 渗透测试-01信息收集

    0x01信息收集 1 什么是信息收集 信息收集是指通过各种方式获取所需要的信息 以便我们在后续的渗透过程更好的进行 比如目标的站点IP 中间件 脚本语言 端口 邮箱等等 信息收集包含资产收集但不限于资产收集 2 信息收集的意义 1 信息收集
  • 使用 easyjson,生成 xxx_easyjson.go 文件之后,对测试结果所产生的影响

    文章评论 原文地址 https blog csdn net luslin1711 article details 90244468 正文 博主 你好 文中的测试结果 似乎不是很正确 由于评论区字数的限制 我另开一篇文章 请您解惑 以下是我的
  • 轻量级c语言开源日志库log.c介绍 - 实现不同级别和参数化日志打印

    前言 c语言没有现成的日志库 如果要记录日志 需要自己封装一个日志库 如果要实现日志级别和参数打印 还是比较麻烦的 正好在github找到了一个c语言开源日志库 可以实现日志级别打印 参数打印 而且还会记录日期和行号 最重要的是代码非常少
  • Google API 设计指南-文档

    翻译自 API Design Guide Documentation 这一章是为 API 添加内部文档的指南 大部分 API 有概述 教程和更高级别的参考文档 此指南不讨论 API 名 资源名和方法名的信息请查看命名约定 注释格式 在 pr
  • OpenGL ES几个概念-顶点着色器、片元着色器、EGL

    一 OpenGL ES OpenGL ES是使用在手机端和嵌入式里的3D图形应用程序编程接口 是跨平台的API OpenGL ES是OpenGL的简化版本 OpenGL2 x 版本相比 1 x 版本有较大差异 1 x 版本为 fixed f
  • Kylin Flink Cube 引擎的前世今生

    Apache Kylin 是一个开源的 分布式的分析型数据仓库 提供Hadoop Spark 之上的 SQL 查询接口及多维分析 OLAP 能力以支持超大规模数据 它能在亚秒内查询巨大的表 Kylin 的核心思想是 预计算 将数据按照指定的
  • C++11之智能指针(unique_ptr、shared_ptr、weak_ptr、auto_ptr)浅谈内存管理

    目录 前言 智能指针 使用方法 unique ptr 实现unique ptr类 使用uniquePtr shared ptr 实现SharedPtr 使用shared ptr weak ptr 使用weak ptr 前言 下面这段代码看起
  • Windows下同时安装python 2 和 3 详细教程 ——为了GitHack工具 同时安装python2和3的过程记录

    搜了半天发现 GitHack竟然真的只能在python2中运行 心痛 不得不去下python2 我之前下的是python3 文章目录 1 下载 安装 python2和3 2 配置python 2 x 的环境变量 3 将python 2 x
  • 投票==公平???

    前言 我们在团队中遇到意见分歧时 通常会通过投票机制以期来得到一个公平 公正的让所有人都能信服的解决方案 但是 这样的方案是否真的绝对公平 只有道德上的相对民主 没有制度上的绝对公平 求同存异才能长治久安 关于投票的经典场景 古雅典陶片放逐
  • TP-LINK交换机登录Web页面的操作方法

    TP LINK交换机登录Web页面的操作方法 之前小编介绍了TP LINK路由器登录Web管理页面的操作步骤 以及路由器无法登录的解决方法 详见文章 Tp link路由器管理界面无法登陆原因解析 下面栏目小编具体说说TP LINK交换机登录
  • Matlab设计数字滤波器入门

    一个3阶低通滤波器由下面差分方程描述 y n 0 0181 x n 0 0543 x n 1 0 0543 x n 2 0 0181 x n 3 1 76 y n 1 1 1829 y n 2 0 2781 y n 3 画出这个滤波器的幅度
  • VUE的基本使用(上)

    一 开发环境配置 VSCode 插件安装 jshint js代码规范检查 Beautify 一键美化代码的插件 Vetur vue文件识别插件 Javascript ES6 code snippets ES6语法提示 Auto Rename
  • 计算机ip保留地址,ip地址显示为保留地址怎么解决

    ip地址显示为保留地址怎么解决 2016 09 05 10 28 标签 dhcp ip地址 ip是保留地址怎么解决 ip作为计算机网络相互连接进行通信的协议 当dhcp超出系统规定的时间后 便会自动分配一个保留地址作为ip 如果主机ip地址
  • 涂鸦WIFI模组方案(MCU SDK)

    摘自涂鸦官方视频教程 https www bilibili com video BV1pb41117LD spm id from 333 999 0 0等 摘自 涂鸦IoT开发平台MCU开发接入 Wi Fi App面板 地址 https w
  • window.close()无效,原因剖析

    官方解释 https developer mozilla org en US docs Web API Window close 简单的说就是 window close 方法只能关闭由window open 或者浏览器直接输入url打开的页
  • 【敬伟ps教程】图层进阶知识

    文章目录 图层过滤和锁定 图层链接 图层编组 图层合并 图层盖印 图层复合 图层剪贴蒙版 图层过滤和锁定 图层过滤可以根据图层不同的性质进行查看管理 图层锁定即是对图层或图层某部分进行操作保护 按钮分别为 锁定透明像素 禁止对透明区域进行操
  • 使用JavaScript实现一个简单的计时器

    简介 计时器是前端开发中常见的功能之一 它可以帮助我们记录时间并进行倒计时等操作 在本篇博客中 我将向大家介绍如何使用JavaScript实现一个简单的计时器 实现步骤 第一步 创建HTML结构 首先 我们需要在HTML中创建一个用于显示计
  • 大语言模型参数说明(Temperature,Top p,Top k)

    如下是一些模型的运行界面 在使用OpenAI的接口 常常遇见一些参数 搞清它们的含义促使我们更进一步理解输出的结果 学习传送带 1 Temperature 用于调整随机从生成模型中抽样的程度 因此每次点击 生成 时 相同的提示可能会产生不同
  • app性能

    性能获取办法 appium webview context execute script perfmance api appium selenium的ExecuteScript Api 注入js return JSON stringify