React-native 进行下载任务时,低配手机发热发烫,运行卡慢的解决办法

本文主要是介绍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 进行下载任务时,低配手机发热发烫,运行卡慢的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/377671

相关文章

前端高级CSS用法示例详解

《前端高级CSS用法示例详解》在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交互和动态效果的关键技术之一,随着前端技术的不断发展,CSS的用法也日益丰富和高级,本文将深... 前端高级css用法在前端开发中,CSS(层叠样式表)不仅是用来控制网页的外观和布局,更是实现复杂交

Python将博客内容html导出为Markdown格式

《Python将博客内容html导出为Markdown格式》Python将博客内容html导出为Markdown格式,通过博客url地址抓取文章,分析并提取出文章标题和内容,将内容构建成html,再转... 目录一、为什么要搞?二、准备如何搞?三、说搞咱就搞!抓取文章提取内容构建html转存markdown

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

springboot循环依赖问题案例代码及解决办法

《springboot循环依赖问题案例代码及解决办法》在SpringBoot中,如果两个或多个Bean之间存在循环依赖(即BeanA依赖BeanB,而BeanB又依赖BeanA),会导致Spring的... 目录1. 什么是循环依赖?2. 循环依赖的场景案例3. 解决循环依赖的常见方法方法 1:使用 @La

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("