zoukankan      html  css  js  c++  java
  • app性能

    性能获取办法

    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  有关与录制阶段期间发生的动画帧相关的性能信息
    

    启动性能

    package=com.xueqiu.android
    清理缓存数据:adb shell pm clear $package
    停止进程:adb shell am force-stop $package
    启动app:adb shell am start  -S -W $package/.view.WelcomeActivityAlias
    获取数据:adb logcat |grep -i displayed
    

    录屏拆帧

    adb shell screenrecord --bugreport --time-limit 30 /data/local/tmp/xueqiu.mp4
    adb pull /data/local/tmp/xueqiu.mp4 .
    ffmpeg -i xueqiu.mp4  xueqiu.gif
    ffmpeg -i xueqiu.mp4  -r 10 frames_%03d.jpg 其从10代表的一秒钟10帧,也就是被切出的图片,一张相当于0.1秒
    
    
  • 相关阅读:
    怎么让Windows2012和Windows2008多用户同时远程
    IIS站点/虚拟目录中访问共享目录(UNC)以及建立后的应用程序的信任级别问题
    Mac 快捷键
    SQL Server Profiler
    vscode 实用插件
    Xss测试
    RequireJS和AMD规范
    ECMAScript 6.0 学习笔记
    使用 create-react-app 构建 react应用程序
    vscode 快捷键
  • 原文地址:https://www.cnblogs.com/an5456/p/11576096.html
Copyright © 2011-2022 走看看