【技术实现步骤摘要】
避免内存溢出导致客户端闪退的方法、装置、设备及介质
[0001]本专利技术涉及计算机
,尤其是涉及一种避免内存溢出导致客户端闪退的方法、装置、设备及存储介质。
技术介绍
[0002]随着货运出行业务的发展,司机端应用中加入了越来越多的功能,包括了地图以及导航的使用、地理位置更新、地理位置上报、埋点数据上报、客户端监控日志上报等,再加上司机在线时间较长,长时间的使用难免会有一部分内存泄漏,或者内存回收时机不当,导致内存占用越来越大,容易触发客户端系统的内存溢出(OOM,outofmemory),从而引发应用崩溃。
[0003]目前,对于内存溢出闪退问题,通常有两种应对方式:1、在实际代码开发层面避免内存泄漏,比如缓存尽量使用NSCache,合理使用自动施放池,对于图片的优化,采用各种调试工具避免内存泄漏等;2、线上监控方案,通过线上日志数据的收集,分析,在代码开发层面做优化。
[0004]由于货运出行等场景情况复杂,客户端在线时间长且后台任务多,现有常用的通过数据采集或优化代码的手段并不能很好地解决内存溢 ...
【技术保护点】
【技术特征摘要】
1.一种避免内存溢出导致客户端闪退的方法,其特征在于,包括:获取当前终端对应的内存溢出阈值,基于所述内存溢出阈值确定内存占用警戒值和内存占用高危值;其中,所述内存占用高危值大于所述内存占用警戒值;当判断所述当前终端的内存占用率超过所述内存占用警戒值时,通过预设的第一优化策略降低所述当前终端的内存占用率;当判断所述当前终端的内存占用率超过所述内存占用高危值时,通过预设的第二优化策略降低所述当前终端的内存占用率。2.根据权利要求1所述的避免内存溢出导致客户端闪退的方法,其特征在于,所述获取当前终端对应的内存溢出阈值,包括以下任一项:基于所述当前终端通过Jetsam机制杀死进程时记录的内存阈值日志,获取所述当前终端对应的内存溢出阈值;在root权限下使用所述当前终端的XNU操作系统内核的目标函数和目标宏,并基于所述目标函数和所述目标宏获取所述当前终端对应的内存溢出阈值;通过目标app创建测试子线程,并通过所述测试子线程按照预设的内存大小循环申请系统内存值,直至出现内存溢出导致所述目标app闪退,记录所述目标app在闪退前的最大内存使用值,并基于所述最大内存使用值确定所述当前终端对应的内存溢出阈值。3.根据权利要求1所述的避免内存溢出导致客户端闪退的方法,其特征在于,所述基于所述内存溢出阈值确定内存占用警戒值和内存占用高危值,包括:将所述内存溢出阈值的70%作为内存占用警戒基准值,并根据所述内存占用警戒基准值以及预设的第一浮动值确定为所述内存占用警戒值;将所述内存溢出阈值的90%作为内存占用高危基准值,并根据所述内存占用高危基准值以及预设的第二浮动值确定为所述内存占用高危值。4.根据权利要求1所述的避免内存溢出导致客户端闪退的方法,其特征在于,所述通过预设的第一优化策略降低所述当前终端的内存占用率,包括以下至少一项:基于预设的第一span值降低所述当前终端的地图应用的刷新精度;基于预设的第一distanceFilter值降低所述当前终端的位置信息的更新精度;降低所述当前终端的位置信息、埋点数据、监控日志的上报频率;降低所述当前终端的网络请求并发量。5.根据权利要求1所述...
【专利技术属性】
技术研发人员:马克,李扬,
申请(专利权)人:深圳依时货拉拉科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。