zoukankan      html  css  js  c++  java
  • APP专项测试4 -- 内存

    获取内存    adb shell top

         adb shell top -d 5 >meminfo    (-d:刷新频率   5:是1秒刷新一次)

    获取指定app内存    adb shell dumpsys meminfo packageName

    VSS - Virtual Set Size  虚拟耗用内存

    RSS - Resident Set Size 实际使用物理内存

    通过脚本定期采集数据,将结果做一个曲线图,如果曲线图波动不大且稳定,可以认定为app无内存泄漏情况

    import os
    import time
    import csv
    
    class Controller(object):
    
        def __init__(self,count):
            #定义收集数据的数组
            self.alldata = [("count","vss","rss")]
            os.popen("adb shell top -d 5 >meminfo")   #meminfo 是到处到adb的目下
    
    
        def analyzedata(self):
            content = self.readfile()
            i = 0
            for line in content:
                if "com.example.shineapp" in line :
                    print(line)
                    line = "#".join(line.split())
                    vss = line.split("#")[5].strip("K")
                    rss = line.split("#")[6].strip("K")
    
                    #将数据存到数组里
                    self.alldata.append((i,vss,rss))
                    i = i+1
    
    
    
        #数据的存储
        def SaveDataToCsv(self):
            csvfile = open("meminfo.csv","wb")
            writer = csv.writer(csvfile)
            writer.writerows(self.alldata)
            csvfile.close()
    
    
        def readfile(self):
            mfile = open("meminfo","r")
            content = mfile.readlines()
            mfile.close()
            return content
    
    if __name__ == '__main__':
    
        controller = Controller()
        controller.analyzedata()
        controller.SaveDataToCsv()
  • 相关阅读:
    事件处理
    模板语法
    计算属性和侦听器
    Class 与 Style绑定
    Springboot使用redis
    修改docker-toolbox/boot2docker容器镜像
    docker容器如何安装vim
    Maven+Docker,发布到Registry
    Maven + Docker
    Jenkins-SVN + Maven + Docker
  • 原文地址:https://www.cnblogs.com/lexus168/p/12691546.html
Copyright © 2011-2022 走看看