我的客户提出了一个关于我们应用程序的问题,即应用程序在长时间使用时变得越来越慢,但我们这边无法模拟问题,因为我们不在他们的真实工作环境中,我们无法在知道错误之前解决问题。 有人可以帮忙吗?
如果这是一个"随着时间的流逝"引发的问题,您应该查找您可能正在运行并重复的任何任务。您应该检查您使用的不同类型的功能。例如,如果您的应用使用本地数据库:
- 查找未关闭的游标。
- I/O 工作
如果您使用的是动画:
- 查找跳过的帧
- 复杂视图层次结构
如果使用后台任务或线程:
- I/O 工作
- 未完成的线程
- 增加螺纹数
如果使用网络和 Web 服务:
- 服务器数据库存在问题
- 连接问题
- 代理
- 。
你也可以使用类似Firebase + Crashlytics的东西来查看是否有任何警告引发但被悄悄处理。
提供有关应用及其功能的更多信息可能有助于制定更准确的解决方案。
减慢应用程序速度的常见原因是内存泄漏。
在iOS上,您可以做的是激活目标上的Memory management
标志并监视日志,您还可以使用Xcode内存图和仪器泄漏工具来检测泄漏。
在Android上,您可以使用LeakCanary等工具在发生泄漏时收到通知。
检测到泄漏后,您可以检查代码以识别源并更好地管理内存。
>@axierjhtjz提到了很多很好的起点。它是否同时发生在iOS和Android,特定设备,供应商上?
如果它主要在一个平台(Android/iOS)上,在不同的设备上,并且主要的抱怨是随着时间的推移而缓慢,我会怀疑以下几点:
- 内存泄漏(可能是 UI、片段) 数据持久性数据随时间递增
- 或/和更多 IO 操作随时间递增。
如果您无法在客户站点上调试问题,我建议您在相关参数和日志上添加远程实时监控功能。
我们过去使用的一个很好的工具是TestFairy。 也许他们有免费试用