性能检测自动化(含内存泄露检测)
2024-01-03 16:42:58
一、平台侧实现方案
1、UI case重复执行N次:进入页面,sleep 5s,记录start_time,sleep 30s,记录end_time,性能采集工具全程采集性能数据
2、根据采集到的性能数据,按照N次卡点性能数据:去掉最大的10%、最小的10%,求取平均值,作为单次性能数据结果f(n)
二、内存泄露
1、安卓端实现:内存泄露检测分为Java内存泄露检测、native内存泄露检测,Java内存泄露输出位标准hprof文件(一种二进制文件),native泄露输出包含泄露的大小和泄露的堆栈。用例执行后直接通过adb上传dump到的Java hprof至自动化结果中,而native泄露(start的时候替换掉所有的动态内存分配函数-malloc和new;记录malloc和new返回的指针、并存在数据集里,然后free delete的时候,把数据集匹配到的指针删除;stop的时候数据集中剩下的就是疑似泄漏点了)则直接上报至监控平台
2、ios端实现:开始记录内存---运行业务case----结束内存记录---堆栈内存地址偏移量埋点上报---存到kafka中---监控平台消费kafka消息---根据版本号符号化后的消息(翻译消息的内存地址,得到代码堆栈)----存到数据库中,查询数据库展示于前端页面
3、平台侧内存泄露检测实现:
f(n) > f(n-1)
(f(n)-f(1))/(n-1)>阈值,判断为内存泄露
4、hprof文件分析&#
文章来源:https://blog.csdn.net/Sabrina_FN/article/details/135115904
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!