电脑连接 iOS 设备,运行脚本能实时看到测试应用的性能数据情况。
1.每秒获取 iOS 应用性能数据
2.把性能数据存储到数据库 mysql(实时)
3.用 grafana 可视化展示性能数据(实时)
1.获取 iOS 应用性能数据这里我选择用(感谢这 2 个项目的作者🙏)
tidevice 获取:CPU 和内存
tidevice 项目地址: https://github.com/alibaba/taobao-iphone-device
py-ios-device 获取:GPU 和 FPS
py-ios-device 项目地址:https://github.com/YueChen-C/py-ios-device
2.基于这 2 个项目,我修改成,运行一个脚本,获取以上性能数据,并实时存储到 mysql(我用 docker 搭建,可网上查找)
这 2 个项目都是 py 语言, py 我不熟,即学即用忘的快那种,所以脚本凑合看(获取性能数据准确性我也没处理,这里主要介绍思路)
完整脚本地址:https://github.com/jlintxia/iOStest
运行文件位置:py-ios-device-main--test--test4.py
数据库每张表都要有时间字段(注意类型),grafana 才能识别成图表,
注意数据库的时区要跟 grafana 默认一致,改成东八区。
3.grafana(我用 docker 搭建,可网上查找)版本我用 V6.7.4,不要用最新版本,因为最新版本,图表刷新不支持每 1 秒刷新了
grafana 搭建好,添加 mysql 数据源
添加自定义图表,编辑自定义 mysql 查询语句:添加 jank 数据例子
其他性能数据添加同理。
设置图表刷新间隔 1s, 默认是 5s,自己添加修改,保存
这样就可以运行脚本,实时在平台看到性能数据,数据一直存储在数据库,方便回看/竞品对比
哈哈,同理可以搞个 Android
感谢分享。还是希望贴下源码参考参考。哈哈哈
IOS =》iOS
目前也在规划这块工具,感谢楼主分享~
挺好,perfdog 付费了,这个也可以顶上。如果能附上完整的源代码,整个方案就更易用了。
DB 用 InfluxDB 应该效率会更高点吧
我们也打算做这个,起源也是 perfdog 要收费了,哈哈
谢谢楼主提供思路
哈哈,同理可以搞个 Android
大佬好强啊
window 连不上 mac 中 docker 的 mysql 是怎么回事呢
解决了,好像是 mac 本身有个 mysql 服务可能有点问题,占用了 3306,我把 docker 换成了 33066 无法连接,现在把有问题的 mysql 干掉了,换回 3306 端口就行了
主要是 cpu,mem,fps,gpu 这四个数据是吗。对于开发同学来说,有什么作用,能解决哪种问题,这个希望也表述下
我弄了下自己创下数据库和表就行,win 可获取到数据,mac 上需要改 cpu/memory 的获取数据代码
提供了一个很棒的思路
挺不错的,CPU,内存这些资源是监控的对应 APP 的,还是整个手机的使用资源?
大佬运行报错 TypeError: init() got an unexpected keyword argument 'perfs'是为啥
大佬请问下数据表中 time 字段的数据从哪来,test4.py 运行代码中没看见插入 time 的值
你看下获取的内容第一句是不是字典的键值对显示和其他的不一样,有时他会获取到第一个是一串连接信息,代码处理掉第一行就行,我后续没遇到了,这块就没处理了
请问一下,这个错误有遇到过吗,开始数据是正常的
pymysql.err.DataError: (1265, "Data truncated for column 'sys_cpu' at row 1")
照着你的思路做了一些动态建表和建 grafana 面板的脚本,可以发 github 吗
你这块 gpu 数据是怎么获取,发现最新的 tidevice 获取不到数据
cpu {'timestamp': 1657282966612, 'pid': 87211, 'value': 200.91855056704622, 'sys_value': 298.95241550901926, 'count': 6}
use_cpu 和 sys_cpu 分别对应的是 value 和 sys_value 吗
我部署的 grafana 跟 MySQL 连接咋老是报 “dial tcp 127.0.0.1:33306: connect: connection refused”,求大神指导
嗯,简单实现
好东西,学习下