本文主要是介绍React-native 进行下载任务时,低配手机发热发烫,运行卡慢的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在用react-antive编写的App实现下载功能,进行多个任务下载时,手机会出现发热,发烫,运行非常缓慢的问题。(原生应用也可能有)
经分析,发热发烫,一般有以下几种可能:
1 、周围环境热,手机散热不过来
2、手机系统,后台运行程序多,手机资源一直在后台消耗,当然手机会发热发烫
3、电池问题,换了电池试下
4、程序运行的算法特别消耗资源,CPU高负荷工作
排除硬件原因,我的App原因聚焦在CPU上,然后我查看手机CPU使用情况
明显有个CPU有100%的占用,这应该就是导致上述问题的原因。
现在就开始想办法降低CPU占用
分析CPU占用的原因,一般有以下几种:
(1) 复杂计算
运行一些算法处理,比如:音视频编解码、图像处理、科学计算等等,特别是一些浮点数的运算。
(2) 持续占用CPU
某些高优先级的进程/线程持续占用CPU,很少或者从来不sleep,类似 while(1) {}
(3) 数据拷贝
频繁进行大量的数据拷贝。
(4) 频繁的系统调用
比如:频繁调用 printf 打印、读写硬盘、网络收发等等。
经分析,我的应用是在下载时,用了一个While循环来进行下载,所以
1、在下载部分的While循环里,我添加了如下代码:
try{ Thread.sleep(2);}catch (Exception e){e.printStackTrace(); }重新编译,查看CPU如下:此时手机已经好转了一大部分
2、继续降低IO读写频率,做法就是加大下载缓存区域,这样就OK啦
原本我的缓存区仅为1K,现在我改为了1000K
private static final int BUFFER_SIZE = 1000*1024;
这篇关于React-native 进行下载任务时,低配手机发热发烫,运行卡慢的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!